home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 2
/
AACD 2.iso
/
AACD
/
Magazine
/
GraphicsCards
/
StormMesa
/
src
/
context.s
< prev
next >
Wrap
Text File
|
1999-02-04
|
97KB
|
5,214 lines
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/context.c
mc68030
mc68881
XREF _gl_set_color_function
XREF _gl_set_vertex_function
XREF _gl_alloc_vb
XREF _gl_update_texture_state
XREF _gl_free_texture_object
XREF _gl_alloc_texture_object
XREF _gl_free_texture_image
XREF _gl_alloc_texture_image
XREF _gl_set_triangle_function
XREF _gl_alloc_stencil_buffer
XREF _gl_set_quad_function
XREF _gl_init_api_function_pointers
XREF _gl_set_point_function
XREF _gl_alloc_pb
XREF _gl_init_math
XREF _gl_destroy_list
XREF _gl_init_lists
XREF _gl_set_line_function
XREF _gl_update_lighting
XREF _gl_compute_material_shine_table
XREF _gl_compute_spot_exp_table
XREF _gl_material_bitmask
XREF _HashFirstEntry
XREF _DeleteHashTable
XREF _NewHashTable
XREF _gl_init_eval
XREF _gl_alloc_depth_buffer
XREF _gl_read_depth_span_int
XREF _gl_read_depth_span_float
XREF _gl_depth_test_pixels_greater
XREF _gl_depth_test_pixels_less
XREF _gl_depth_test_pixels_generic
XREF _gl_depth_test_span_greater
XREF _gl_depth_test_span_less
XREF _gl_depth_test_span_generic
XREF _gl_clip_interp_color
XREF _gl_clip_interp_tex
XREF _gl_clip_interp_color_tex
XREF _gl_clip_interp_all
XREF _gl_alloc_alpha_buffers
XREF _gl_alloc_accum_buffer
XREF _q_memset
XREF _q_memcpy
XREF _strcpy
XREF _getenv
XREF _malloc
XREF _free
XREF _calloc
XREF _fprintf
XREF _std__in
XREF _std__out
XREF _std__err
SECTION "_CC:1",DATA
XDEF _CC
_CC
dc.l 0
SECTION "_alloc_shared_state:0",CODE
rts
;static struct gl_shared_state *alloc_shared_state( void )
_alloc_shared_state
movem.l d2/d3/a2,-(a7)
L267
; ss = (struct gl_shared_state*) calloc( 1, sizeof(struct gl_sha
pea $28.w
pea 1.w
jsr _calloc
addq.w #$8,a7
move.l d0,a2
; if (!ss)
cmp.w #0,a2
bne.b L269
L268
moveq #0,d0
movem.l (a7)+,d2/d3/a2
rts
L269
; ss->DisplayList = NewHashTable();
jsr _NewHashTable
move.l d0,4(a2)
; ss->TexObjects = NewHashTable();
jsr _NewHashTable
move.l d0,$8(a2)
; outOfMemory = GL_FALSE;
moveq #0,d3
; for (i=0;
moveq #0,d2
bra.b L275
L270
; ss->Default1D[i] = gl_alloc_texture_object(ss, 0, 1);
pea 1.w
clr.l -(a7)
move.l a2,-(a7)
jsr _gl_alloc_texture_object
add.w #$C,a7
lea $10(a2),a0
move.l d0,0(a0,d2.l*4)
; ss->Default2D[i] = gl_alloc_texture_object(ss, 0, 2);
pea 2.w
clr.l -(a7)
move.l a2,-(a7)
jsr _gl_alloc_texture_object
add.w #$C,a7
lea $18(a2),a0
move.l d0,0(a0,d2.l*4)
; ss->Default3D[i] = gl_alloc_texture_object(ss, 0, 3);
pea 3.w
clr.l -(a7)
move.l a2,-(a7)
jsr _gl_alloc_texture_object
add.w #$C,a7
lea $20(a2),a0
move.l d0,0(a0,d2.l*4)
; if (!ss->Default1D[i] || !ss->Default2D[i] || !ss->Defau
lea $10(a2),a0
tst.l 0(a0,d2.l*4)
beq.b L273
L271
lea $18(a2),a0
tst.l 0(a0,d2.l*4)
beq.b L273
L272
lea $20(a2),a0
tst.l 0(a0,d2.l*4)
bne.b L274
L273
; outOfMemory = GL_TRUE;
moveq #1,d3
;
bra.b L276
L274
addq.l #1,d2
L275
cmp.l #2,d2
blo.b L270
L276
; if (!ss->DisplayList || !ss->TexObjects || outOfMemory)
tst.l 4(a2)
beq.b L279
L277
tst.l $8(a2)
beq.b L279
L278
tst.b d3
beq L293
L279
; if (!ss->DisplayList)
tst.l 4(a2)
bne.b L281
L280
; DeleteHashTable(ss->DisplayList);
move.l 4(a2),-(a7)
jsr _DeleteHashTable
addq.w #4,a7
L281
; if (!ss->TexObjects)
tst.l $8(a2)
bne.b L283
L282
; DeleteHashTable(ss->TexObjects);
move.l $8(a2),-(a7)
jsr _DeleteHashTable
addq.w #4,a7
L283
; for (i=0;
moveq #0,d2
bra.b L291
L284
; if (!ss->Default1D[i])
lea $10(a2),a0
tst.l 0(a0,d2.l*4)
bne.b L286
L285
; gl_free_texture_object(ss, ss->Default1D[i]);
lea $10(a2),a0
move.l 0(a0,d2.l*4),-(a7)
move.l a2,-(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
L286
; if (!ss->Default2D[i])
lea $18(a2),a0
tst.l 0(a0,d2.l*4)
bne.b L288
L287
; gl_free_texture_object(ss, ss->Default2D[i]);
lea $18(a2),a0
move.l 0(a0,d2.l*4),-(a7)
move.l a2,-(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
L288
; s->GenModeR = GL_EYE_LINEAR;
lea $20(a2),a0
tst.l 0(a0,d2.l*4)
bne.b L290
L289
; gl_free_texture_object(ss, ss->Default3D[i]);
lea $20(a2),a0
move.l 0(a0,d2.l*4),-(a7)
move.l a2,-(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
L290
addq.l #1,d2
L291
cmp.l #2,d2
blo.b L284
L292
; free(ss);
move.l a2,-(a7)
jsr _free
addq.w #4,a7
moveq #0,d0
movem.l (a7)+,d2/d3/a2
rts
L293
move.l a2,d0
movem.l (a7)+,d2/d3/a2
rts
SECTION "_free_shared_state:0",CODE
;static void free_shared_state( GLcontext *ctx, struct gl_shared_stat
_free_shared_state
movem.l a2/a3,-(a7)
move.l $10(a7),a2
move.l $C(a7),a3
L294
; while (1)
bra.b L298
L295
; GLuint list = HashFirstEntry(ss->DisplayList);
move.l 4(a2),-(a7)
jsr _HashFirstEntry
addq.w #4,a7
; if (list)
tst.l d0
beq.b L297
L296
; gl_destroy_list(ctx, list);
move.l d0,-(a7)
move.l a3,-(a7)
jsr _gl_destroy_list
addq.w #$8,a7
bra.b L298
L297
;
bra.b L299
L298
bra.b L295
L299
; DeleteHashTable(ss->DisplayList);
move.l 4(a2),-(a7)
jsr _DeleteHashTable
addq.w #4,a7
; while (ss->TexObjectList)
bra.b L301
L300
; gl_free_texture_object(ss, ss->TexObjectList);
move.l $C(a2),-(a7)
move.l a2,-(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
L301
tst.l $C(a2)
bne.b L300
L302
; DeleteHashTable(ss->TexObjects);
move.l $8(a2),-(a7)
jsr _DeleteHashTable
addq.w #4,a7
; free(ss);
move.l a2,-(a7)
jsr _free
addq.w #4,a7
movem.l (a7)+,a2/a3
rts
SECTION "_init_light:0",CODE
;static void init_light( struct gl_light *l, GLuint n )
_init_light
move.l a2,-(a7)
move.l $C(a7),d0
move.l $8(a7),a2
L303
; ASSIGN_4V( l->Ambien
clr.l (a2)
; ASSIGN_4V( l->Ambien
clr.l 4(a2)
; ASSIGN_4V( l->Ambien
clr.l $8(a2)
; ASSIGN_4V( l->Ambien
move.l #$3F800000,$C(a2)
; if (n==0)
tst.l d0
bne.b L305
L304
; ASSIGN_4V( l->
move.l #$3F800000,$10(a2)
; ASSIGN_4V( l->
lea $10(a2),a0
move.l #$3F800000,4(a0)
; ASSIGN_4V( l->
lea $10(a2),a0
move.l #$3F800000,$8(a0)
; ASSIGN_4V( l->
lea $10(a2),a0
move.l #$3F800000,$C(a0)
; ASSIGN_4V( l-
move.l #$3F800000,$20(a2)
; ASSIGN_4V( l-
lea $20(a2),a0
move.l #$3F800000,4(a0)
; ASSIGN_4V( l-
lea $20(a2),a0
move.l #$3F800000,$8(a0)
; ASSIGN_4V( l-
lea $20(a2),a0
move.l #$3F800000,$C(a0)
bra.b L306
L305
; ASSIGN_4V( l->
clr.l $10(a2)
; ASSIGN_4V( l->
lea $10(a2),a0
clr.l 4(a0)
; ASSIGN_4V( l->
lea $10(a2),a0
clr.l $8(a0)
; ASSIGN_4V( l->
lea $10(a2),a0
move.l #$3F800000,$C(a0)
; ASSIGN_4V( l-
clr.l $20(a2)
; ASSIGN_4V( l-
lea $20(a2),a0
clr.l 4(a0)
; ASSIGN_4V( l-
lea $20(a2),a0
clr.l $8(a0)
; ASSIGN_4V( l-
lea $20(a2),a0
move.l #$3F800000,$C(a0)
L306
; ASSIGN_4V( l->Posit
clr.l $30(a2)
; ASSIGN_4V( l->Posit
lea $30(a2),a0
clr.l 4(a0)
; ASSIGN_4V( l->Posit
lea $30(a2),a0
move.l #$3F800000,$8(a0)
; ASSIGN_4V( l->Posit
lea $30(a2),a0
clr.l $C(a0)
; ASSIGN_3V( l->Directio
clr.l $40(a2)
; ASSIGN_3V( l->Directio
lea $40(a2),a0
clr.l 4(a0)
; ASSIGN_3V( l->Directio
lea $40(a2),a0
move.l #$BF800000,$8(a0)
; l->SpotExponent = 0.0;
clr.l $50(a2)
; gl_compute_spot_exp_table( l );
move.l a2,-(a7)
jsr _gl_compute_spot_exp_table
addq.w #4,a7
; l->SpotCutoff = 180.0;
move.l #$43340000,$54(a2)
; l->CosCutoff = -1.0;
move.l #$BF800000,$58(a2)
; l->ConstantAttenuation = 1.0;
move.l #$3F800000,$5C(a2)
; l->LinearAttenuation = 0.0;
clr.l $60(a2)
; l->QuadraticAttenuation = 0.0;
clr.l $64(a2)
; l->Enabled = GL_FALSE;
clr.b $68(a2)
move.l (a7)+,a2
rts
SECTION "_init_lightmodel:0",CODE
;static void init_lightmodel( struct gl_lightmodel *lm )
_init_lightmodel
move.l 4(a7),a0
L307
; ASSIGN_4V( lm->Ambi
move.l #$3E4CCCCC,(a0)
; ASSIGN_4V( lm->Ambi
move.l #$3E4CCCCC,4(a0)
; ASSIGN_4V( lm->Ambi
move.l #$3E4CCCCC,$8(a0)
; ASSIGN_4V( lm->Ambi
move.l #$3F800000,$C(a0)
; lm->LocalViewer = GL_FALSE;
clr.b $10(a0)
; lm->TwoSide = GL_FALSE;
clr.b $11(a0)
; lm->ColorControl = GL_SINGLE_COLOR;
move.l #$81F9,$12(a0)
rts
SECTION "_init_material:0",CODE
;static void init_material( struct gl_material *m )
_init_material
move.l 4(a7),a0
L308
; ASSIGN_4V( m->Ambie
move.l #$3E4CCCCC,(a0)
; ASSIGN_4V( m->Ambie
move.l #$3E4CCCCC,4(a0)
; ASSIGN_4V( m->Ambie
move.l #$3E4CCCCC,$8(a0)
; ASSIGN_4V( m->Ambie
move.l #$3F800000,$C(a0)
; ASSIGN_4V( m->Diffu
move.l #$3F4CCCCC,$10(a0)
; ASSIGN_4V( m->Diffu
lea $10(a0),a1
move.l #$3F4CCCCC,4(a1)
; ASSIGN_4V( m->Diffu
lea $10(a0),a1
move.l #$3F4CCCCC,$8(a1)
; ASSIGN_4V( m->Diffu
lea $10(a0),a1
move.l #$3F800000,$C(a1)
; ASSIGN_4V( m->Specu
clr.l $20(a0)
; ASSIGN_4V( m->Specu
lea $20(a0),a1
clr.l 4(a1)
; ASSIGN_4V( m->Specu
lea $20(a0),a1
clr.l $8(a1)
; ASSIGN_4V( m->Specu
lea $20(a0),a1
move.l #$3F800000,$C(a1)
; ASSIGN_4V( m->Emiss
clr.l $30(a0)
; ASSIGN_4V( m->Emiss
lea $30(a0),a1
clr.l 4(a1)
; ASSIGN_4V( m->Emiss
lea $30(a0),a1
clr.l $8(a1)
; ASSIGN_4V( m->Emiss
lea $30(a0),a1
move.l #$3F800000,$C(a1)
; m->Shininess = 0.0;
clr.l $40(a0)
; m->AmbientIndex = 0;
clr.l $44(a0)
; m->DiffuseIndex = 1;
move.l #$3F800000,$48(a0)
; m->SpecularIndex = 1;
move.l #$3F800000,$4C(a0)
; gl_compute_material_shine_table( m );
move.l a0,-(a7)
jsr _gl_compute_material_shine_table
addq.w #4,a7
rts
SECTION "_init_texture_set:0",CODE
;static void init_texture_set( GLcontext *ctx, GLuint setNum )
_init_texture_set
move.l a2,-(a7)
move.l $C(a7),d0
move.l $8(a7),a1
L309
; struct gl_texture_set *s = &ctx->Texture.Set[setNum];
move.l a1,a0
add.l #$DEC6,a0
move.l d0,d1
muls.l #$BC,d1
add.l d1,a0
; s->EnvMode = GL_MODULATE;
move.l #$2100,(a0)
; ASSIGN_4V( s->EnvCo
clr.l 4(a0)
; ASSIGN_4V( s->EnvCo
lea 4(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->EnvCo
lea 4(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->EnvCo
lea 4(a0),a2
clr.l $C(a2)
; s->TexGenEnabled = 0;
clr.l $14(a0)
; s->GenModeS = GL_EYE_LINEAR;
move.l #$2400,$18(a0)
; s->GenModeT = GL_EYE_LINEAR;
move.l #$2400,$1C(a0)
; s->GenModeR = GL_EYE_LINEAR;
move.l #$2400,$20(a0)
; s->GenModeQ = GL_EYE_LINEAR;
move.l #$2400,$24(a0)
; ASSIGN_4V( s->O
move.l #$3F800000,$28(a0)
; ASSIGN_4V( s->O
lea $28(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->O
lea $28(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->O
lea $28(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->O
clr.l $38(a0)
; ASSIGN_4V( s->O
lea $38(a0),a2
move.l #$3F800000,4(a2)
; ASSIGN_4V( s->O
lea $38(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->O
lea $38(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->O
clr.l $48(a0)
; ASSIGN_4V( s->O
lea $48(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->O
lea $48(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->O
lea $48(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->O
clr.l $58(a0)
; ASSIGN_4V( s->O
lea $58(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->O
lea $58(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->O
lea $58(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->EyeP
move.l #$3F800000,$68(a0)
; ASSIGN_4V( s->EyeP
lea $68(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->EyeP
lea $68(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->EyeP
lea $68(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->EyeP
clr.l $78(a0)
; ASSIGN_4V( s->EyeP
lea $78(a0),a2
move.l #$3F800000,4(a2)
; ASSIGN_4V( s->EyeP
lea $78(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->EyeP
lea $78(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->EyeP
clr.l $88(a0)
; ASSIGN_4V( s->EyeP
lea $88(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->EyeP
lea $88(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->EyeP
lea $88(a0),a2
clr.l $C(a2)
; ASSIGN_4V( s->EyeP
clr.l $98(a0)
; ASSIGN_4V( s->EyeP
lea $98(a0),a2
clr.l 4(a2)
; ASSIGN_4V( s->EyeP
lea $98(a0),a2
clr.l $8(a2)
; ASSIGN_4V( s->EyeP
lea $98(a0),a2
clr.l $C(a2)
; s->Current1D = ctx->Shared->Default1D[setNum];
move.l (a1),a2
lea $10(a2),a2
move.l 0(a2,d0.l*4),$A8(a0)
; s->Current2D = ctx->Shared->Default2D[setNum];
move.l (a1),a2
lea $18(a2),a2
move.l 0(a2,d0.l*4),$AC(a0)
; s->Current3D = ctx->Shared->Default3D[setNum];
move.l (a1),a1
lea $20(a1),a1
move.l 0(a1,d0.l*4),$B0(a0)
; s->TexCoordSet = setNum;
move.l d0,$B8(a0)
move.l (a7)+,a2
rts
SECTION "_init_1d_map:0",CODE
;static void init_1d_map( struct gl_1d_map *map, int n, const float *
_init_1d_map
movem.l d2/a2/a3,-(a7)
movem.l $14(a7),d2/a3
move.l $10(a7),a2
L310
; map->Order = 1;
move.l #1,(a2)
; map->u1 = 0.0;
clr.l 4(a2)
; map->u2 = 1.0;
move.l #$3F800000,$8(a2)
; map->Points = malloc(n * sizeof(GLfloat));
move.l d2,d0
moveq #2,d1
asl.l d1,d0
move.l d0,-(a7)
jsr _malloc
addq.w #4,a7
move.l d0,$C(a2)
; if (map->Points)
tst.l $C(a2)
beq.b L314
L311
; for (i=0;
moveq #0,d0
bra.b L313
L312
; map->Points[i] = initial[i];
move.l $C(a2),a0
move.l 0(a3,d0.l*4),0(a0,d0.l*4)
addq.l #1,d0
L313
cmp.l d2,d0
blt.b L312
L314
; map->Retain = GL_FALSE;
clr.b $10(a2)
movem.l (a7)+,d2/a2/a3
rts
SECTION "_init_2d_map:0",CODE
;static void init_2d_map( struct gl_2d_map *map, int n, const float *
_init_2d_map
movem.l d2/a2/a3,-(a7)
movem.l $14(a7),d2/a3
move.l $10(a7),a2
L315
; map->Uorder = 1;
move.l #1,(a2)
; map->Vorder = 1;
move.l #1,4(a2)
; map->u1 = 0.0;
clr.l $8(a2)
; map->u2 = 1.0;
move.l #$3F800000,$C(a2)
; map->v1 = 0.0;
clr.l $10(a2)
; map->v2 = 1.0;
move.l #$3F800000,$14(a2)
; map->Points = malloc(n * sizeof(GLfloat));
move.l d2,d0
moveq #2,d1
asl.l d1,d0
move.l d0,-(a7)
jsr _malloc
addq.w #4,a7
move.l d0,$18(a2)
; if (map->Points)
tst.l $18(a2)
beq.b L319
L316
; for (i=0;
moveq #0,d0
bra.b L318
L317
; map->Points[i] = initial[i];
move.l $18(a2),a0
move.l 0(a3,d0.l*4),0(a0,d0.l*4)
addq.l #1,d0
L318
cmp.l d2,d0
blt.b L317
L319
; map->Retain = GL_FALSE;
clr.b $1C(a2)
movem.l (a7)+,d2/a2/a3
rts
SECTION "_initialize_context:0",CODE
;static void initialize_context( GLcontext *ctx )
_initialize_context
movem.l d2/a2,-(a7)
move.l $C(a7),a2
L324
; if (ctx)
cmp.w #0,a2
beq L356
L325
; ctx->NewModelViewMatrix = GL_FALSE;
clr.b $9F4(a2)
; ctx->ModelViewMatrixType = MATRIX_IDENTITY;
move.l #1,$9F6(a2)
;ctx->ModelViewMat
pea $40.w
pea _identity___initialize_context(a6)
pea $9FA(a2)
jsr _q_memcpy
add.w #$C,a7
;Y( ctx->ModelView
pea $40.w
pea _identity___initialize_context(a6)
pea $A3A(a2)
jsr _q_memcpy
add.w #$C,a7
; ctx->ModelViewStackDepth = 0;
clr.l $A7A(a2)
; ctx->NewProjectionMatrix = GL_FALSE;
clr.b $127E(a2)
; ctx->ProjectionMatrixType = MATRIX_IDENTITY;
move.l #1,$1280(a2)
;tx->ProjectionMat
pea $40.w
pea _identity___initialize_context(a6)
pea $1284(a2)
jsr _q_memcpy
add.w #$C,a7
; ctx->ProjectionStackDepth = 0;
clr.l $12C4(a2)
; ctx->NearFarStack[0][0] = 1.0;
move.l #$3F800000,$1AC8(a2)
; ctx->NearFarStack[0][1] = 0.0;
lea $1AC8(a2),a0
clr.l 4(a0)
; for (i=0;
moveq #0,d2
bra.b L327
L326
; ctx->NewTextureMatrix = GL_FALSE;
clr.b $1BC8(a2)
; ctx->TextureMatrixType[i] = MATRIX_IDENTITY;
lea $1BCA(a2),a0
move.l #1,0(a0,d2.l*4)
;tx->TextureMatrix
pea $40.w
pea _identity___initialize_context(a6)
lea $1BD2(a2),a0
move.l d2,d0
asl.l #6,d0
pea 0(a0,d0.l)
jsr _q_memcpy
add.w #$C,a7
; ctx->TextureStackDepth[i] = 0;
lea $1C52(a2),a0
clr.l 0(a0,d2.l*4)
addq.l #1,d2
L327
cmp.l #2,d2
blo.b L326
L328
;SIGN_4V( ctx->Acc
clr.l $21B4(a2)
;SIGN_4V( ctx->Acc
lea $21B4(a2),a0
clr.l 4(a0)
;SIGN_4V( ctx->Acc
lea $21B4(a2),a0
clr.l $8(a0)
;SIGN_4V( ctx->Acc
lea $21B4(a2),a0
clr.l $C(a0)
; ctx->Color.IndexMask = 0xffffffff;
move.l #-1,$21D8(a2)
; ctx->Color.ColorMask[0] = 0xff;
move.b #$FF,$21DC(a2)
; ctx->Color.ColorMask[1] = 0xff;
lea $21DC(a2),a0
move.b #$FF,1(a0)
; ctx->Color.ColorMask[2] = 0xff;
lea $21DC(a2),a0
move.b #$FF,2(a0)
; ctx->Color.ColorMask[3] = 0xff;
lea $21DC(a2),a0
move.b #$FF,3(a0)
; ctx->Color.SWmasking = GL_FALSE;
clr.b $21E0(a2)
; ctx->Color.ClearIndex = 0;
clr.l $21C4(a2)
;SIGN_4V( ctx->Col
clr.l $21C8(a2)
;SIGN_4V( ctx->Col
lea $21C8(a2),a0
clr.l 4(a0)
;SIGN_4V( ctx->Col
lea $21C8(a2),a0
clr.l $8(a0)
;SIGN_4V( ctx->Col
lea $21C8(a2),a0
clr.l $C(a0)
; ctx->Color.DrawBuffer = GL_FRONT;
move.l #$404,$21E2(a2)
; ctx->Color.AlphaEnabled = GL_FALSE;
clr.b $21E6(a2)
; ctx->Color.AlphaFunc = GL_ALWAYS;
move.l #$207,$21E8(a2)
; ctx->Color.AlphaRef = 0;
clr.b $21EC(a2)
; ctx->Color.BlendEnabled = GL_FALSE;
clr.b $21ED(a2)
; ctx->Color.BlendSrc = GL_ONE;
move.l #1,$21EE(a2)
; ctx->Color.BlendDst = GL_ZERO;
clr.l $21F2(a2)
; ctx->Color.BlendEquation = GL_FUNC_ADD_EXT;
move.l #$8006,$21F6(a2)
; ctx->Color.BlendFunc = NULL;
clr.l $220A(a2)
;SIGN_4V( ctx->Col
clr.l $21FA(a2)
;SIGN_4V( ctx->Col
lea $21FA(a2),a0
clr.l 4(a0)
;SIGN_4V( ctx->Col
lea $21FA(a2),a0
clr.l $8(a0)
;SIGN_4V( ctx->Col
lea $21FA(a2),a0
clr.l $C(a0)
; ctx->Color.IndexLogicOpEnabled = GL_FALSE;
clr.b $2212(a2)
; ctx->Color.ColorLogicOpEnabled = GL_FALSE;
clr.b $2213(a2)
; ctx->Color.SWLogicOpEnabled = GL_FALSE;
clr.b $2214(a2)
; ctx->Color.LogicOp = GL_COPY;
move.l #$1503,$220E(a2)
; ctx->Color.DitherFlag = GL_TRUE;
move.b #1,$2215(a2)
;IGN_4V( ctx->Curr
move.b #$FF,$2216(a2)
;IGN_4V( ctx->Curr
lea $2216(a2),a0
move.b #$FF,1(a0)
;IGN_4V( ctx->Curr
lea $2216(a2),a0
move.b #$FF,2(a0)
;IGN_4V( ctx->Curr
lea $2216(a2),a0
move.b #$FF,3(a0)
; ctx->Current.Index = 1;
move.l #1,$221A(a2)
; ASSIGN_3V( c
clr.l $221E(a2)
; ASSIGN_3V( c
lea $221E(a2),a0
clr.l 4(a0)
; ASSIGN_3V( c
lea $221E(a2),a0
move.l #$3F800000,$8(a0)
; for (i=0;
moveq #0,d2
bra.b L330
L329
; ctx->Current.Mul
lea $222E(a2),a0
move.l d2,d0
asl.l #4,d0
clr.l 0(a0,d0.l)
; ctx->Current.Mul
lea $222E(a2),a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l 4(a0)
; ctx->Current.Mul
lea $222E(a2),a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l $8(a0)
; ctx->Current.Mul
lea $222E(a2),a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
move.l #$3F800000,$C(a0)
addq.l #1,d2
L330
cmp.l #2,d2
blo.b L329
L331
; ctx->Current.TexCoord = ctx->Current.MultiTexCoord[0];
lea $222E(a2),a0
move.l a0,$222A(a2)
;IGN_4V( ctx->Curr
clr.l $224E(a2)
;IGN_4V( ctx->Curr
lea $224E(a2),a0
clr.l 4(a0)
;IGN_4V( ctx->Curr
lea $224E(a2),a0
clr.l $8(a0)
;IGN_4V( ctx->Curr
lea $224E(a2),a0
move.l #$3F800000,$C(a0)
; ctx->Current.RasterDistance = 0.0;
clr.l $225E(a2)
;N_4V( ctx->Curren
move.l #$3F800000,$2262(a2)
;N_4V( ctx->Curren
lea $2262(a2),a0
move.l #$3F800000,4(a0)
;N_4V( ctx->Curren
lea $2262(a2),a0
move.l #$3F800000,$8(a0)
;N_4V( ctx->Curren
lea $2262(a2),a0
move.l #$3F800000,$C(a0)
; ctx->Current.RasterIndex = 1;
move.l #1,$2272(a2)
; for (i=0;
moveq #0,d2
bra.b L333
L332
;Current.RasterMul
lea $227A(a2),a0
move.l d2,d0
asl.l #4,d0
clr.l 0(a0,d0.l)
;Current.RasterMul
lea $227A(a2),a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l 4(a0)
;Current.RasterMul
lea $227A(a2),a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l $8(a0)
;Current.RasterMul
lea $227A(a2),a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
move.l #$3F800000,$C(a0)
addq.l #1,d2
L333
cmp.l #2,d2
blo.b L332
L334
; ctx->Current.RasterTexCoord = ctx->Current.RasterMultiTe
lea $227A(a2),a0
move.l a0,$2276(a2)
; ctx->Current.RasterPosValid = GL_TRUE;
move.b #1,$229A(a2)
; ctx->Current.EdgeFlag = GL_TRUE;
move.b #1,$229B(a2)
; ctx->Depth.Test = GL_FALSE;
clr.b $22A4(a2)
; ctx->Depth.Clear = 1.0;
move.l #$3F800000,$22A0(a2)
; ctx->Depth.Func = GL_LESS;
move.l #$201,$229C(a2)
; ctx->Depth.Mask = GL_TRUE;
move.b #1,$22A5(a2)
; ctx->Eval.Map1Color4 = GL_FALSE;
clr.b $22A6(a2)
; ctx->Eval.Map1Index = GL_FALSE;
clr.b $22A7(a2)
; ctx->Eval.Map1Normal = GL_FALSE;
clr.b $22A8(a2)
; ctx->Eval.Map1TextureCoord1 = GL_FALSE;
clr.b $22A9(a2)
; ctx->Eval.Map1TextureCoord2 = GL_FALSE;
clr.b $22AA(a2)
; ctx->Eval.Map1TextureCoord3 = GL_FALSE;
clr.b $22AB(a2)
; ctx->Eval.Map1TextureCoord4 = GL_FALSE;
clr.b $22AC(a2)
; ctx->Eval.Map1Vertex3 = GL_FALSE;
clr.b $22AD(a2)
; ctx->Eval.Map1Vertex4 = GL_FALSE;
clr.b $22AE(a2)
; ctx->Eval.Map2Color4 = GL_FALSE;
clr.b $22AF(a2)
; ctx->Eval.Map2Index = GL_FALSE;
clr.b $22B0(a2)
; ctx->Eval.Map2Normal = GL_FALSE;
clr.b $22B1(a2)
; ctx->Eval.Map2TextureCoord1 = GL_FALSE;
clr.b $22B2(a2)
; ctx->Eval.Map2TextureCoord2 = GL_FALSE;
clr.b $22B3(a2)
; ctx->Eval.Map2TextureCoord3 = GL_FALSE;
clr.b $22B4(a2)
; ctx->Eval.Map2TextureCoord4 = GL_FALSE;
clr.b $22B5(a2)
; ctx->Eval.Map2Vertex3 = GL_FALSE;
clr.b $22B6(a2)
; ctx->Eval.Map2Vertex4 = GL_FALSE;
clr.b $22B7(a2)
; ctx->Eval.AutoNormal = GL_FALSE;
clr.b $22B8(a2)
; ctx->Eval.MapGrid1un = 1;
move.l #1,$22BA(a2)
; ctx->Eval.MapGrid1u1 = 0.0;
clr.l $22BE(a2)
; ctx->Eval.MapGrid1u2 = 1.0;
move.l #$3F800000,$22C2(a2)
; ctx->Eval.MapGrid2un = 1;
move.l #1,$22C6(a2)
; ctx->Eval.MapGrid2vn = 1;
move.l #1,$22CA(a2)
; ctx->Eval.MapGrid2u1 = 0.0;
clr.l $22CE(a2)
; ctx->Eval.MapGrid2u2 = 1.0;
move.l #$3F800000,$22D2(a2)
; ctx->Eval.MapGrid2v1 = 0.0;
clr.l $22D6(a2)
; ctx->Eval.MapGrid2v2 = 1.0;
move.l #$3F800000,$22DA(a2)
; init_1d_map( &ctx->EvalMap.Map1Vertex3, 3, vertex )
pea _vertex___initialize_context(a6)
pea 3.w
move.l a2,a0
add.l #$E678,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Vertex4, 4, vertex )
pea _vertex___initialize_context(a6)
pea 4.w
move.l a2,a0
add.l #$E68A,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Index, 1, index );
pea _index___initialize_context(a6)
pea 1.w
move.l a2,a0
add.l #$E69C,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Color4, 4, color );
pea _color___initialize_context(a6)
pea 4.w
move.l a2,a0
add.l #$E6AE,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Normal, 3, normal );
pea _normal___initialize_context(a6)
pea 3.w
move.l a2,a0
add.l #$E6C0,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Texture1, 1, texcoo
pea _texcoord___initialize_context(a6)
pea 1.w
move.l a2,a0
add.l #$E6D2,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Texture2, 2, texcoo
pea _texcoord___initialize_context(a6)
pea 2.w
move.l a2,a0
add.l #$E6E4,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Texture3, 3, texcoo
pea _texcoord___initialize_context(a6)
pea 3.w
move.l a2,a0
add.l #$E6F6,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_1d_map( &ctx->EvalMap.Map1Texture4, 4, texcoo
pea _texcoord___initialize_context(a6)
pea 4.w
move.l a2,a0
add.l #$E708,a0
pea (a0)
jsr _init_1d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Vertex3, 3, vertex )
pea _vertex___initialize_context(a6)
pea 3.w
move.l a2,a0
add.l #$E71A,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Vertex4, 4, vertex )
pea _vertex___initialize_context(a6)
pea 4.w
move.l a2,a0
add.l #$E738,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Index, 1, index );
pea _index___initialize_context(a6)
pea 1.w
move.l a2,a0
add.l #$E756,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Color4, 4, color );
pea _color___initialize_context(a6)
pea 4.w
move.l a2,a0
add.l #$E774,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Normal, 3, normal );
pea _normal___initialize_context(a6)
pea 3.w
move.l a2,a0
add.l #$E792,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Texture1, 1, texcoo
pea _texcoord___initialize_context(a6)
pea 1.w
move.l a2,a0
add.l #$E7B0,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Texture2, 2, texcoo
pea _texcoord___initialize_context(a6)
pea 2.w
move.l a2,a0
add.l #$E7CE,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Texture3, 3, texcoo
pea _texcoord___initialize_context(a6)
pea 3.w
move.l a2,a0
add.l #$E7EC,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; init_2d_map( &ctx->EvalMap.Map2Texture4, 4, texcoo
pea _texcoord___initialize_context(a6)
pea 4.w
move.l a2,a0
add.l #$E80A,a0
pea (a0)
jsr _init_2d_map
add.w #$C,a7
; ctx->Fog.Enabled = GL_FALSE;
clr.b $22DE(a2)
; ctx->Fog.Mode = GL_EXP;
move.l #$800,$2300(a2)
; ASSIGN_4V( c
clr.l $22E0(a2)
; ASSIGN_4V( c
lea $22E0(a2),a0
clr.l 4(a0)
; ASSIGN_4V( c
lea $22E0(a2),a0
clr.l $8(a0)
; ASSIGN_4V( c
lea $22E0(a2),a0
clr.l $C(a0)
; ctx->Fog.Index = 0.0;
clr.l $22FC(a2)
; ctx->Fog.Density = 1.0;
move.l #$3F800000,$22F0(a2)
; ctx->Fog.Start = 0.0;
clr.l $22F4(a2)
; ctx->Fog.End = 1.0;
move.l #$3F800000,$22F8(a2)
; ctx->Hint.PerspectiveCorrection = GL_DONT_CARE;
move.l #$1100,$2304(a2)
; ctx->Hint.PointSmooth = GL_DONT_CARE;
move.l #$1100,$2308(a2)
; ctx->Hint.LineSmooth = GL_DONT_CARE;
move.l #$1100,$230C(a2)
; ctx->Hint.PolygonSmooth = GL_DONT_CARE;
move.l #$1100,$2310(a2)
; ctx->Hint.Fog = GL_DONT_CARE;
move.l #$1100,$2314(a2)
; for (i=0;
moveq #0,d2
bra.b L336
L335
; init_light( &ctx->Light.Light[i], i );
move.l d2,-(a7)
lea $2318(a2),a0
move.l d2,d0
muls.l #$10E2,d0
pea 0(a0,d0.l)
jsr _init_light
addq.w #$8,a7
addq.l #1,d2
L336
cmp.l #$8,d2
blo.b L335
L337
; init_lightmodel( &ctx->Light.Model );
move.l a2,a0
add.l #$AA28,a0
pea (a0)
jsr _init_lightmodel
addq.w #4,a7
; init_material( &ctx->Light.Material[0] );
move.l a2,a0
add.l #$AA3E,a0
pea (a0)
jsr _init_material
addq.w #4,a7
; init_material( &ctx->Light.Material[1] );
move.l a2,a0
add.l #$AA3E,a0
pea $370(a0)
jsr _init_material
addq.w #4,a7
; ctx->Light.ShadeModel = GL_SMOOTH;
move.l a2,a0
add.l #$B120,a0
move.l #$1D01,(a0)
; ctx->Light.Enabled = GL_FALSE;
move.l a2,a0
add.l #$B11E,a0
clr.b (a0)
; ctx->Light.ColorMaterialFace = GL_FRONT_AND_BACK;
move.l a2,a0
add.l #$B124,a0
move.l #$408,(a0)
; ctx->Light.ColorMaterialMode = GL_AMBIENT_AND_DIFFUSE;
move.l a2,a0
add.l #$B128,a0
move.l #$1602,(a0)
; ctx->Light.ColorMaterialBitmask
pea $1602.w
pea $408.w
jsr _gl_material_bitmask
addq.w #$8,a7
move.l a2,a0
add.l #$B12C,a0
move.l d0,(a0)
; ctx->Light.ColorMaterialEnabled = GL_FALSE;
move.l a2,a0
add.l #$B130,a0
clr.b (a0)
; ctx->Line.SmoothFlag = GL_FALSE;
move.l a2,a0
add.l #$B158,a0
clr.b (a0)
; ctx->Line.StippleFlag = GL_FALSE;
move.l a2,a0
add.l #$B159,a0
clr.b (a0)
; ctx->Line.Width = 1.0;
move.l a2,a0
add.l #$B160,a0
move.l #$3F800000,(a0)
; ctx->Line.StipplePattern = 0xffff;
move.l a2,a0
add.l #$B15A,a0
move.w #$FFFF,(a0)
; ctx->Line.StippleFactor = 1;
move.l a2,a0
add.l #$B15C,a0
move.l #1,(a0)
; ctx->List.ListBase = 0;
move.l a2,a0
add.l #$B164,a0
clr.l (a0)
; ctx->Pixel.RedBias = 0.0;
move.l a2,a0
add.l #$B16C,a0
clr.l (a0)
; ctx->Pixel.RedScale = 1.0;
move.l a2,a0
add.l #$B170,a0
move.l #$3F800000,(a0)
; ctx->Pixel.GreenBias = 0.0;
move.l a2,a0
add.l #$B174,a0
clr.l (a0)
; ctx->Pixel.GreenScale = 1.0;
move.l a2,a0
add.l #$B178,a0
move.l #$3F800000,(a0)
; ctx->Pixel.BlueBias = 0.0;
move.l a2,a0
add.l #$B17C,a0
clr.l (a0)
; ctx->Pixel.BlueScale = 1.0;
move.l a2,a0
add.l #$B180,a0
move.l #$3F800000,(a0)
; ctx->Pixel.AlphaBias = 0.0;
move.l a2,a0
add.l #$B184,a0
clr.l (a0)
; ctx->Pixel.AlphaScale = 1.0;
move.l a2,a0
add.l #$B188,a0
move.l #$3F800000,(a0)
; ctx->Pixel.ScaleOrBiasRGBA = GL_FALSE;
move.l a2,a0
add.l #$B18C,a0
clr.b (a0)
; ctx->Pixel.DepthBias = 0.0;
move.l a2,a0
add.l #$B18E,a0
clr.l (a0)
; ctx->Pixel.DepthScale = 1.0;
move.l a2,a0
add.l #$B192,a0
move.l #$3F800000,(a0)
; ctx->Pixel.IndexOffset = 0;
move.l a2,a0
add.l #$B19A,a0
clr.l (a0)
; ctx->Pixel.IndexShift = 0;
move.l a2,a0
add.l #$B196,a0
clr.l (a0)
; ctx->Pixel.ZoomX = 1.0;
move.l a2,a0
add.l #$B1A0,a0
move.l #$3F800000,(a0)
; ctx->Pixel.ZoomY = 1.0;
move.l a2,a0
add.l #$B1A4,a0
move.l #$3F800000,(a0)
; ctx->Pixel.MapColorFlag = GL_FALSE;
move.l a2,a0
add.l #$B19E,a0
clr.b (a0)
; ctx->Pixel.MapStencilFlag = GL_FALSE;
move.l a2,a0
add.l #$B19F,a0
clr.b (a0)
; ctx->Pixel.MapStoSsize = 1;
move.l a2,a0
add.l #$B1A8,a0
move.l #1,(a0)
; ctx->Pixel.MapItoIsize = 1;
move.l a2,a0
add.l #$B1AC,a0
move.l #1,(a0)
; ctx->Pixel.MapItoRsize = 1;
move.l a2,a0
add.l #$B1B0,a0
move.l #1,(a0)
; ctx->Pixel.MapItoGsize = 1;
move.l a2,a0
add.l #$B1B4,a0
move.l #1,(a0)
; ctx->Pixel.MapItoBsize = 1;
move.l a2,a0
add.l #$B1B8,a0
move.l #1,(a0)
; ctx->Pixel.MapItoAsize = 1;
move.l a2,a0
add.l #$B1BC,a0
move.l #1,(a0)
; ctx->Pixel.MapRtoRsize = 1;
move.l a2,a0
add.l #$B1C0,a0
move.l #1,(a0)
; ctx->Pixel.MapGtoGsize = 1;
move.l a2,a0
add.l #$B1C4,a0
move.l #1,(a0)
; ctx->Pixel.MapBtoBsize = 1;
move.l a2,a0
add.l #$B1C8,a0
move.l #1,(a0)
; ctx->Pixel.MapAtoAsize = 1;
move.l a2,a0
add.l #$B1CC,a0
move.l #1,(a0)
; ctx->Pixel.MapStoS[0] = 0;
move.l a2,a0
add.l #$B1D0,a0
clr.l (a0)
; ctx->Pixel.MapItoI[0] = 0;
move.l a2,a0
add.l #$B5D0,a0
clr.l (a0)
; ctx->Pixel.MapItoR[0] = 0.0;
move.l a2,a0
add.l #$B9D0,a0
clr.l (a0)
; ctx->Pixel.MapItoG[0] = 0.0;
move.l a2,a0
add.l #$BDD0,a0
clr.l (a0)
; ctx->Pixel.MapItoB[0] = 0.0;
move.l a2,a0
add.l #$C1D0,a0
clr.l (a0)
; ctx->Pixel.MapItoA[0] = 0.0;
move.l a2,a0
add.l #$C5D0,a0
clr.l (a0)
; ctx->Pixel.MapItoR8[0] = 0;
move.l a2,a0
add.l #$C9D0,a0
clr.b (a0)
; ctx->Pixel.MapItoG8[0] = 0;
move.l a2,a0
add.l #$CAD0,a0
clr.b (a0)
; ctx->Pixel.MapItoB8[0] = 0;
move.l a2,a0
add.l #$CBD0,a0
clr.b (a0)
; ctx->Pixel.MapItoA8[0] = 0;
move.l a2,a0
add.l #$CCD0,a0
clr.b (a0)
; ctx->Pixel.MapRtoR[0] = 0.0;
move.l a2,a0
add.l #$CDD0,a0
clr.l (a0)
; ctx->Pixel.MapGtoG[0] = 0.0;
move.l a2,a0
add.l #$D1D0,a0
clr.l (a0)
; ctx->Pixel.MapBtoB[0] = 0.0;
move.l a2,a0
add.l #$D5D0,a0
clr.l (a0)
; ctx->Pixel.MapAtoA[0] = 0.0;
move.l a2,a0
add.l #$D9D0,a0
clr.l (a0)
; ctx->Point.SmoothFlag = GL_FALSE;
move.l a2,a0
add.l #$DDD0,a0
clr.b (a0)
; ctx->Point.Size = 1.0;
move.l a2,a0
add.l #$DDD2,a0
move.l #$3F800000,(a0)
; ctx->Point.Params[0] = 1.0;
move.l a2,a0
add.l #$DDD6,a0
move.l #$3F800000,(a0)
; ctx->Point.Params[1] = 0.0;
move.l a2,a0
add.l #$DDD6,a0
clr.l 4(a0)
; ctx->Point.Params[2] = 0.0;
move.l a2,a0
add.l #$DDD6,a0
clr.l $8(a0)
; ctx->Point.MinSize = 0.0;
move.l a2,a0
add.l #$DDE2,a0
clr.l (a0)
; ctx->Point.MaxSize = (GLfloat) MAX_POINT_SIZE;
move.l a2,a0
add.l #$DDE6,a0
move.l #$41200000,(a0)
; ctx->Point.Threshold = 1.0;
move.l a2,a0
add.l #$DDEA,a0
move.l #$3F800000,(a0)
; ctx->Polygon.CullFlag = GL_FALSE;
move.l a2,a0
add.l #$DDFB,a0
clr.b (a0)
; ctx->Polygon.CullFaceMode = GL_BACK;
move.l a2,a0
add.l #$DDFC,a0
move.l #$405,(a0)
; ctx->Polygon.FrontFace = GL_CCW;
move.l a2,a0
add.l #$DDEE,a0
move.l #$901,(a0)
; ctx->Polygon.FrontMode = GL_FILL;
move.l a2,a0
add.l #$DDF2,a0
move.l #$1B02,(a0)
; ctx->Polygon.BackMode = GL_FILL;
move.l a2,a0
add.l #$DDF6,a0
move.l #$1B02,(a0)
; ctx->Polygon.Unfilled = GL_FALSE;
move.l a2,a0
add.l #$DDFA,a0
clr.b (a0)
; ctx->Polygon.SmoothFlag = GL_FALSE;
move.l a2,a0
add.l #$DE04,a0
clr.b (a0)
; ctx->Polygon.StippleFlag = GL_FALSE;
move.l a2,a0
add.l #$DE05,a0
clr.b (a0)
; ctx->Polygon.OffsetFactor = 0.0F;
move.l a2,a0
add.l #$DE06,a0
clr.l (a0)
; ctx->Polygon.OffsetUnits = 0.0F;
move.l a2,a0
add.l #$DE0A,a0
clr.l (a0)
; ctx->Polygon.OffsetPoint = GL_FALSE;
move.l a2,a0
add.l #$DE0E,a0
clr.b (a0)
; ctx->Polygon.OffsetLine = GL_FALSE;
move.l a2,a0
add.l #$DE0F,a0
clr.b (a0)
; ctx->Polygon.OffsetFill = GL_FALSE;
move.l a2,a0
add.l #$DE10,a0
clr.b (a0)
; ctx->Polygon.OffsetAny = GL_FALSE;
move.l a2,a0
add.l #$DE11,a0
clr.b (a0)
;MSET( ctx->Polygo
pea $80.w
pea $FF.w
move.l a2,a0
add.l #$DE12,a0
pea (a0)
jsr _q_memset
add.w #$C,a7
; ctx->Scissor.Enabled = GL_FALSE;
move.l a2,a0
add.l #$DE92,a0
clr.b (a0)
; ctx->Scissor.X = 0;
move.l a2,a0
add.l #$DE94,a0
clr.l (a0)
; ctx->Scissor.Y = 0;
move.l a2,a0
add.l #$DE98,a0
clr.l (a0)
; ctx->Scissor.Width = 0;
move.l a2,a0
add.l #$DE9C,a0
clr.l (a0)
; ctx->Scissor.Height = 0;
move.l a2,a0
add.l #$DEA0,a0
clr.l (a0)
; ctx->Stencil.Enabled = GL_FALSE;
move.l a2,a0
add.l #$DEA4,a0
clr.b (a0)
; ctx->Stencil.Function = GL_ALWAYS;
move.l a2,a0
add.l #$DEA6,a0
move.l #$207,(a0)
; ctx->Stencil.FailFunc = GL_KEEP;
move.l a2,a0
add.l #$DEAA,a0
move.l #$1E00,(a0)
; ctx->Stencil.ZPassFunc = GL_KEEP;
move.l a2,a0
add.l #$DEAE,a0
move.l #$1E00,(a0)
; ctx->Stencil.ZFailFunc = GL_KEEP;
move.l a2,a0
add.l #$DEB2,a0
move.l #$1E00,(a0)
; ctx->Stencil.Ref = 0;
move.l a2,a0
add.l #$DEB6,a0
clr.b (a0)
; ctx->Stencil.ValueMask = 0xff;
move.l a2,a0
add.l #$DEB7,a0
move.b #$FF,(a0)
; ctx->Stencil.Clear = 0;
move.l a2,a0
add.l #$DEB8,a0
clr.b (a0)
; ctx->Stencil.WriteMask = 0xff;
move.l a2,a0
add.l #$DEB9,a0
move.b #$FF,(a0)
; ctx->Texture.CurrentSet = 0;
move.l a2,a0
add.l #$DEBA,a0
clr.l (a0)
; ctx->Texture.CurrentTransformSet = 0;
move.l a2,a0
add.l #$DEBE,a0
clr.l (a0)
; ctx->Texture.Enabled = 0;
move.l a2,a0
add.l #$DEC2,a0
clr.l (a0)
; ctx->Texture.AnyDirty = GL_FALSE;
move.l a2,a0
add.l #$E03E,a0
clr.b (a0)
; for (i=0;
moveq #0,d2
bra.b L339
L338
; init_texture_set( ctx, i );
move.l d2,-(a7)
move.l a2,-(a7)
jsr _init_texture_set
addq.w #$8,a7
addq.l #1,d2
L339
cmp.l #2,d2
blo.b L338
L340
; ctx->Texture.SharedPalette = GL_FALSE;
move.l a2,a0
add.l #$E04C,a0
clr.b (a0)
; ctx->Texture.Palette[0] = 255;
move.l a2,a0
add.l #$E04D,a0
move.b #$FF,(a0)
; ctx->Texture.Palette[1] = 255;
move.l a2,a0
add.l #$E04D,a0
move.b #$FF,1(a0)
; ctx->Texture.Palette[2] = 255;
move.l a2,a0
add.l #$E04D,a0
move.b #$FF,2(a0)
; ctx->Texture.Palette[3] = 255;
move.l a2,a0
add.l #$E04D,a0
move.b #$FF,3(a0)
; ctx->Texture.PaletteSize = 1;
move.l a2,a0
add.l #$E44E,a0
move.l #1,(a0)
; ctx->Texture.PaletteIntFormat = GL_RGBA;
move.l a2,a0
add.l #$E452,a0
move.l #$1908,(a0)
; ctx->Texture.PaletteFormat = GL_RGBA;
move.l a2,a0
add.l #$E456,a0
move.l #$1908,(a0)
; ctx->Transform.MatrixMode = GL_MODELVIEW;
move.l a2,a0
add.l #$E4D2,a0
move.l #$1700,(a0)
; ctx->Transform.Normalize = GL_FALSE;
move.l a2,a0
add.l #$E53D,a0
clr.b (a0)
; ctx->Transform.RescaleNormals = GL_FALSE;
move.l a2,a0
add.l #$E53E,a0
clr.b (a0)
; for (i=0;
moveq #0,d2
bra.b L342
L341
; ctx->Transform.ClipEnabled[i] = GL_FALSE;
move.l a2,a0
add.l #$E536,a0
clr.b 0(a0,d2.l)
;ctx->Transform.Cl
move.l a2,a0
add.l #$E4D6,a0
move.l d2,d0
asl.l #4,d0
clr.l 0(a0,d0.l)
;ctx->Transform.Cl
move.l a2,a0
add.l #$E4D6,a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l 4(a0)
;ctx->Transform.Cl
move.l a2,a0
add.l #$E4D6,a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l $8(a0)
;ctx->Transform.Cl
move.l a2,a0
add.l #$E4D6,a0
move.l d2,d0
asl.l #4,d0
lea 0(a0,d0.l),a0
clr.l $C(a0)
addq.l #1,d2
L342
cmp.l #6,d2
blo.b L341
L343
; ctx->Transform.AnyClip = GL_FALSE;
move.l a2,a0
add.l #$E53C,a0
clr.b (a0)
; ctx->Viewport.X = 0;
move.l a2,a0
add.l #$E540,a0
clr.l (a0)
; ctx->Viewport.Y = 0;
move.l a2,a0
add.l #$E544,a0
clr.l (a0)
; ctx->Viewport.Width = 0;
move.l a2,a0
add.l #$E548,a0
clr.l (a0)
; ctx->Viewport.Height = 0;
move.l a2,a0
add.l #$E54C,a0
clr.l (a0)
; ctx->Viewport.Near = 0.0;
move.l a2,a0
add.l #$E550,a0
clr.l (a0)
; ctx->Viewport.Far = 1.0;
move.l a2,a0
add.l #$E554,a0
move.l #$3F800000,(a0)
; ctx->Viewport.Sx = 0.0;
move.l a2,a0
add.l #$E558,a0
clr.l (a0)
; ctx->Viewport.Tx = 0.0;
move.l a2,a0
add.l #$E564,a0
clr.l (a0)
; ctx->Viewport.Sy = 0.0;
move.l a2,a0
add.l #$E55C,a0
clr.l (a0)
; ctx->Viewport.Ty = 0.0;
move.l a2,a0
add.l #$E568,a0
clr.l (a0)
; ctx->Viewport.Sz = 0.5 * DEPTH_SCALE;
move.l a2,a0
add.l #$E560,a0
move.l #$46FFFF00,(a0)
; ctx->Viewport.Tz = 0.5 * DEPTH_SCALE;
move.l a2,a0
add.l #$E56C,a0
move.l #$46FFFF00,(a0)
; ctx->Array.VertexSize = 4;
move.l a2,a0
add.l #$E5B8,a0
move.l #4,(a0)
; ctx->Array.VertexType = GL_FLOAT;
move.l a2,a0
add.l #$E5BC,a0
move.l #$1406,(a0)
; ctx->Array.VertexStride = 0;
move.l a2,a0
add.l #$E5C0,a0
clr.l (a0)
; ctx->Array.VertexStrideB = 0;
move.l a2,a0
add.l #$E5C4,a0
clr.l (a0)
; ctx->Array.VertexPtr = NULL;
move.l a2,a1
add.l #$E5C8,a1
clr.l (a1)
; ctx->Array.VertexEnabled = GL_FALSE;
move.l a2,a0
add.l #$E5CC,a0
clr.b (a0)
; ctx->Array.NormalType = GL_FLOAT;
move.l a2,a0
add.l #$E5CE,a0
move.l #$1406,(a0)
; ctx->Array.NormalStride = 0;
move.l a2,a0
add.l #$E5D2,a0
clr.l (a0)
; ctx->Array.NormalStrideB = 0;
move.l a2,a0
add.l #$E5D6,a0
clr.l (a0)
; ctx->Array.NormalPtr = NULL;
move.l a2,a1
add.l #$E5DA,a1
clr.l (a1)
; ctx->Array.NormalEnabled = GL_FALSE;
move.l a2,a0
add.l #$E5DE,a0
clr.b (a0)
; ctx->Array.ColorSize = 4;
move.l a2,a0
add.l #$E5E0,a0
move.l #4,(a0)
; ctx->Array.ColorType = GL_FLOAT;
move.l a2,a0
add.l #$E5E4,a0
move.l #$1406,(a0)
; ctx->Array.ColorStride = 0;
move.l a2,a0
add.l #$E5E8,a0
clr.l (a0)
; ctx->Array.ColorStrideB = 0;
move.l a2,a0
add.l #$E5EC,a0
clr.l (a0)
; ctx->Array.ColorPtr = NULL;
move.l a2,a1
add.l #$E5F0,a1
clr.l (a1)
; ctx->Array.ColorEnabled = GL_FALSE;
move.l a2,a0
add.l #$E5F4,a0
clr.b (a0)
; ctx->Array.IndexType = GL_FLOAT;
move.l a2,a0
add.l #$E5F6,a0
move.l #$1406,(a0)
; ctx->Array.IndexStride = 0;
move.l a2,a0
add.l #$E5FA,a0
clr.l (a0)
; ctx->Array.IndexStrideB = 0;
move.l a2,a0
add.l #$E5FE,a0
clr.l (a0)
; ctx->Array.IndexPtr = NULL;
move.l a2,a1
add.l #$E602,a1
clr.l (a1)
; ctx->Array.IndexEnabled = GL_FALSE;
move.l a2,a0
add.l #$E606,a0
clr.b (a0)
; for (i = 0;
moveq #0,d2
bra.b L345
L344
; ctx->Array.TexCoordSize[i] = 4;
move.l a2,a0
add.l #$E608,a0
move.l #4,0(a0,d2.l*4)
; ctx->Array.TexCoordType[i] = GL_FLOAT;
move.l a2,a0
add.l #$E610,a0
move.l #$1406,0(a0,d2.l*4)
; ctx->Array.TexCoordStride[i] = 0;
move.l a2,a0
add.l #$E618,a0
clr.l 0(a0,d2.l*4)
; ctx->Array.TexCoordStrideB[i] = 0;
move.l a2,a0
add.l #$E620,a0
clr.l 0(a0,d2.l*4)
; ctx->Array.TexCoordPtr[i] = NULL;
move.l a2,a0
add.l #$E628,a0
clr.l 0(a0,d2.l*4)
; ctx->Array.TexCoordEnabled[i] = GL_FALSE;
move.l a2,a0
add.l #$E630,a0
clr.b 0(a0,d2.l)
addq.l #1,d2
L345
cmp.l #2,d2
blo.b L344
L346
; ctx->Array.TexCoordInterleaveFactor = 1;
move.l a2,a0
add.l #$E632,a0
move.l #1,(a0)
; ctx->Array.EdgeFlagStride = 0;
move.l a2,a0
add.l #$E636,a0
clr.l (a0)
; ctx->Array.EdgeFlagStrideB = 0;
move.l a2,a0
add.l #$E63A,a0
clr.l (a0)
; ctx->Array.EdgeFlagPtr = NULL;
move.l a2,a1
add.l #$E63E,a1
clr.l (a1)
; ctx->Array.EdgeFlagEnabled = GL_FALSE;
move.l a2,a0
add.l #$E642,a0
clr.b (a0)
; ctx->Pack.Alignment = 4;
move.l a2,a0
add.l #$E644,a0
move.l #4,(a0)
; ctx->Pack.RowLength = 0;
move.l a2,a0
add.l #$E648,a0
clr.l (a0)
; ctx->Pack.SkipPixels = 0;
move.l a2,a0
add.l #$E64C,a0
clr.l (a0)
; ctx->Pack.SkipRows = 0;
move.l a2,a0
add.l #$E650,a0
clr.l (a0)
; ctx->Pack.SwapBytes = GL_FALSE;
move.l a2,a0
add.l #$E65C,a0
clr.b (a0)
; ctx->Pack.LsbFirst = GL_FALSE;
move.l a2,a0
add.l #$E65D,a0
clr.b (a0)
; ctx->Unpack.Alignment = 4;
move.l a2,a0
add.l #$E65E,a0
move.l #4,(a0)
; ctx->Unpack.RowLength = 0;
move.l a2,a0
add.l #$E662,a0
clr.l (a0)
; ctx->Unpack.SkipPixels = 0;
move.l a2,a0
add.l #$E666,a0
clr.l (a0)
; ctx->Unpack.SkipRows = 0;
move.l a2,a0
add.l #$E66A,a0
clr.l (a0)
; ctx->Unpack.SwapBytes = GL_FALSE;
move.l a2,a0
add.l #$E676,a0
clr.b (a0)
; ctx->Unpack.LsbFirst = GL_FALSE;
move.l a2,a0
add.l #$E677,a0
clr.b (a0)
; ctx->Feedback.Type = GL_2D;
move.l a2,a0
add.l #$E828,a0
move.l #$600,(a0)
; ctx->Feedback.Buffer = NULL;
move.l a2,a1
add.l #$E830,a1
clr.l (a1)
; ctx->Feedback.BufferSize = 0;
move.l a2,a0
add.l #$E834,a0
clr.l (a0)
; ctx->Feedback.Count = 0;
move.l a2,a0
add.l #$E838,a0
clr.l (a0)
; ctx->Select.Buffer = NULL;
move.l a2,a1
add.l #$E83C,a1
clr.l (a1)
; ctx->Select.BufferSize = 0;
move.l a2,a0
add.l #$E840,a0
clr.l (a0)
; ctx->Select.BufferCount = 0;
move.l a2,a0
add.l #$E844,a0
clr.l (a0)
; ctx->Select.Hits = 0;
move.l a2,a0
add.l #$E848,a0
clr.l (a0)
; ctx->Select.NameStackDepth = 0;
move.l a2,a0
add.l #$E84C,a0
clr.l (a0)
; ctx->TexCoordSet = 0;
move.l a2,a0
add.l #$E570,a0
clr.l (a0)
; ctx->AttribStackDepth = 0;
clr.l $2170(a2)
; ctx->ClientAttribStackDepth = 0;
move.l a2,a0
add.l #$E574,a0
clr.l (a0)
; ctx->NewState = NEW_ALL;
move.l a2,a0
add.l #$E960,a0
move.l #$FF,(a0)
; ctx->RenderMode = GL_RENDER;
move.l a2,a0
add.l #$E964,a0
move.l #$1C00,(a0)
; ctx->Primitive = GL_BITMAP;
move.l a2,a0
add.l #$E968,a0
move.l #$1A00,(a0)
; ctx->StippleCounter = 0;
move.l a2,a0
add.l #$E96C,a0
clr.l (a0)
; ctx->NeedNormals = GL_FALSE;
move.l a2,a0
add.l #$E986,a0
clr.b (a0)
; ctx->DoViewportMapping = GL_TRUE;
move.l a2,a0
add.l #$E98E,a0
move.b #1,(a0)
; ctx->CallDepth = 0;
clr.l $215A(a2)
; ctx->ExecuteFlag = GL_TRUE;
move.b #1,$215E(a2)
; ctx->CompileFlag = GL_FALSE;
clr.b $215F(a2)
; ctx->CurrentListPtr = NULL;
clr.l $2160(a2)
; ctx->CurrentBlock = NULL;
clr.l $2168(a2)
; ctx->CurrentListNum = 0;
clr.l $2164(a2)
; ctx->CurrentPos = 0;
clr.l $216C(a2)
; ctx->ErrorValue = (GLenum) GL_NO_ERROR;
move.l a2,a0
add.l #$E95A,a0
clr.l (a0)
; ctx->NoRaster = getenv("MESA_NO_RASTER") ? GL_TRUE : GL_
move.l #L320,-(a7)
jsr _getenv
addq.w #4,a7
tst.l d0
beq.b L348
L347
moveq #1,d0
bra.b L349
L348
moveq #0,d0
L349
move.l a2,a0
add.l #$E99C,a0
move.b d0,(a0)
; ctx->NoDither = getenv("MESA_NO_DITHER") ? GL_TRUE : GL_
move.l #L321,-(a7)
jsr _getenv
addq.w #4,a7
tst.l d0
beq.b L351
L350
moveq #1,d0
bra.b L352
L351
moveq #0,d0
L352
move.l a2,a0
add.l #$E99D,a0
move.b d0,(a0)
; if (ctx->NoDither)
move.l a2,a0
add.l #$E99D,a0
tst.b (a0)
beq.b L356
L353
; if (getenv("MESA_DEBUG"))
move.l #L322,-(a7)
jsr _getenv
addq.w #4,a7
tst.l d0
beq.b L355
L354
; fprintf(stderr, "MESA_NO_DITHER set - dither
move.l #L323,-(a7)
pea _std__err(a6)
jsr _fprintf
addq.w #$8,a7
L355
; ctx->Color.DitherFlag = GL_FALSE;
clr.b $2215(a2)
L356
movem.l (a7)+,d2/a2
rts
L322
dc.b 'MESA_DEBUG',0
L321
dc.b 'MESA_NO_DITHER',0
L323
dc.b 'MESA_NO_DITHER set - dithering disabled',$A,0
L320
dc.b 'MESA_NO_RASTER',0
SECTION "_initialize_context:1",DATA
_identity___initialize_context
dc.l $3F800000,0,0,0,0,$3F800000,0,0,0,0,$3F800000
dc.l 0,0,0,0,$3F800000
_vertex___initialize_context
dc.l 0,0,0,$3F800000
_normal___initialize_context
dc.l 0,0,$3F800000
_index___initialize_context
dc.l $3F800000
_color___initialize_context
dc.l $3F800000,$3F800000,$3F800000,$3F800000
_texcoord___initialize_context
dc.l 0,0,0,$3F800000
SECTION "_gl_create_visual:0",CODE
; return GL_FALSE;
XDEF _gl_create_visual
_gl_create_visual
L384 EQU -4
link a5,#L384
movem.l d2-d7,-(a7)
move.l $2C(a5),d2
move.b $A(a5),d3
move.b $C(a5),d4
move.l $18(a5),d5
move.l $14(a5),d6
move.l $10(a5),d7
L358
; if (stereoFlag)
tst.b $E(a5)
beq.b L360
L359
; gl_warning(NULL, "stereo not supported");
move.l #L357,-(a7)
clr.l -(a7)
jsr _gl_warning
addq.w #$8,a7
moveq #0,d0
movem.l (a7)+,d2-d7
unlk a5
rts
L360
; if (depthBits > (GLint) (8*sizeof(GLdepth)))
move.l d7,d0
cmp.l #$10,d0
ble.b L362
L361
moveq #0,d0
movem.l (a7)+,d2-d7
unlk a5
rts
L362
; if (stencilBits > (GLint) (8*sizeof(GLstencil)))
move.l d6,d0
cmp.l #$8,d0
ble.b L364
L363
moveq #0,d0
movem.l (a7)+,d2-d7
unlk a5
rts
L364
; if (accumBits > (GLint) (8*sizeof(GLaccum)))
cmp.l #$10,d5
ble.b L366
L365
moveq #0,d0
movem.l (a7)+,d2-d7
unlk a5
rts
L366
; vis = (GLvisual *) calloc( 1, sizeof(GLvisual) );
pea $26.w
pea 1.w
jsr _calloc
addq.w #$8,a7
move.l d0,a0
; if (!vis)
cmp.w #0,a0
bne.b L368
L367
moveq #0,d0
movem.l (a7)+,d2-d7
unlk a5
rts
L368
; vis->RGBAflag = rgbFlag;
move.b $8(a5),(a0)
; vis->DBflag = dbFlag;
move.b d4,1(a0)
; vis->StereoFlag = stereoFlag;
move.b $E(a5),2(a0)
; vis->RedBits = redBits;
move.l $20(a5),4(a0)
; vis->GreenBits = greenBits;
move.l $24(a5),$8(a0)
; vis->BlueBits = blueBits;
move.l $28(a5),$C(a0)
; vis->AlphaBits = alphaFlag ? 8*sizeof(GLubyte) : alphaBits;
tst.b d3
beq.b L370
L369
moveq #$8,d2
L370
L371
move.l d2,$10(a0)
; vis->IndexBits = indexBits;
move.l $1C(a5),$14(a0)
; vis->DepthBits = (depthBits>0) ? 8*sizeof(GLdepth) : 0;
move.l d7,d0
cmp.l #0,d0
ble.b L373
L372
moveq #$10,d0
bra.b L374
L373
moveq #0,d0
L374
move.l d0,$1C(a0)
; vis->AccumBits = (accumBits>0) ? 8*sizeof(GLaccum) : 0;
cmp.l #0,d5
ble.b L376
L375
moveq #$10,d0
bra.b L377
L376
moveq #0,d0
L377
move.l d0,$18(a0)
; vis->StencilBits = (stencilBits>0) ? 8*sizeof(GLstencil) : 0;
move.l d6,d0
cmp.l #0,d0
ble.b L379
L378
moveq #$8,d0
bra.b L380
L379
moveq #0,d0
L380
move.l d0,$20(a0)
; if (alphaFlag)
tst.b d3
beq.b L383
L381
; vis->FrontAlphaEnabled = GL_TRUE;
move.b #1,$24(a0)
; if (dbFlag)
tst.b d4
beq.b L383
L382
; vis->BackAlphaEnabled = GL_TRUE;
move.b #1,$25(a0)
L383
move.l a0,d0
movem.l (a7)+,d2-d7
unlk a5
rts
L357
dc.b 'stereo not supported',0
SECTION "_gl_destroy_visual:0",CODE
;void gl_destroy_visual( GLvisual *vis )
XDEF _gl_destroy_visual
_gl_destroy_visual
move.l 4(a7),a0
L385
; free( vis );
move.l a0,-(a7)
jsr _free
addq.w #4,a7
rts
SECTION "_alloc_proxy_textures:0",CODE
;static GLboolean alloc_proxy_textures( GLcontext *ctx )
_alloc_proxy_textures
movem.l d2/d3/a2,-(a7)
move.l $10(a7),a2
L386
; ctx->Texture.Proxy1D = gl_alloc_texture_object(NULL, 0, 1);
pea 1.w
clr.l -(a7)
clr.l -(a7)
jsr _gl_alloc_texture_object
add.w #$C,a7
move.l a2,a1
add.l #$E040,a1
move.l d0,(a1)
; if (!ctx->Texture.Proxy1D)
move.l a2,a0
add.l #$DEBA,a0
tst.l $186(a0)
bne.b L388
L387
moveq #0,d0
movem.l (a7)+,d2/d3/a2
rts
L388
; ctx->Texture.Proxy2D = gl_alloc_texture_object(NULL, 0, 2);
pea 2.w
clr.l -(a7)
clr.l -(a7)
jsr _gl_alloc_texture_object
add.w #$C,a7
move.l a2,a1
add.l #$E044,a1
move.l d0,(a1)
; if (!ctx->Texture.Proxy2D)
move.l a2,a0
add.l #$DEBA,a0
tst.l $18A(a0)
bne.b L390
L389
; gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
moveq #0,d0
movem.l (a7)+,d2/d3/a2
rts
L390
; ctx->Texture.Proxy3D = gl_alloc_texture_object(NULL, 0, 3);
pea 3.w
clr.l -(a7)
clr.l -(a7)
jsr _gl_alloc_texture_object
add.w #$C,a7
move.l a2,a1
add.l #$E048,a1
move.l d0,(a1)
; if (!ctx->Texture.Proxy3D)
move.l a2,a0
add.l #$DEBA,a0
tst.l $18E(a0)
bne.b L392
L391
; gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
; gl_free_texture_object(NULL, ctx->Texture.Proxy2D);
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
moveq #0,d0
movem.l (a7)+,d2/d3/a2
rts
L392
; out_of_memory = GL_FALSE;
moveq #0,d3
; for (i=0;
moveq #0,d2
bra L398
L393
; ctx->Texture.Proxy1D->Image[i] = gl_alloc_texture_image()
jsr _gl_alloc_texture_image
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l d0,0(a0,d2.l*4)
; ctx->Texture.Proxy2D->Image[i] = gl_alloc_texture_image()
jsr _gl_alloc_texture_image
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l d0,0(a0,d2.l*4)
; ctx->Texture.Proxy3D->Image[i] = gl_alloc_texture_image()
jsr _gl_alloc_texture_image
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l d0,0(a0,d2.l*4)
; if (!ctx->Texture.Proxy1D->Image[i]
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L396
L394
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L396
L395
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
bne.b L397
L396
; out_of_memory = GL_TRUE;
moveq #1,d3
L397
addq.l #1,d2
L398
cmp.l #$B,d2
blt L393
L399
; if (out_of_memory)
tst.b d3
beq L410
L400
; for (i=0;
moveq #0,d2
bra L408
L401
; if (ctx->Texture.Proxy1D->Image[i])
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L403
L402
; gl_free_texture_image(ctx->Texture.Proxy1D->
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L403
; if (ctx->Texture.Proxy2D->Image[i])
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L405
L404
; gl_free_texture_image(ctx->Texture.Proxy2D->
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L405
; if (ctx->Texture.Proxy3D->Image[i])
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L407
L406
; gl_free_texture_image(ctx->Texture.Proxy3D->
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L407
addq.l #1,d2
L408
cmp.l #$B,d2
blt L401
L409
; gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
; gl_free_texture_object(NULL, ctx->Texture.Proxy2D);
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
; gl_free_texture_object(NULL, ctx->Texture.Proxy3D);
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
moveq #0,d0
movem.l (a7)+,d2/d3/a2
rts
L410
moveq #1,d0
movem.l (a7)+,d2/d3/a2
rts
SECTION "_gl_create_context:0",CODE
;GLcontext *gl_create_context( GLvisual *visual,
XDEF _gl_create_context
_gl_create_context
L427 EQU -4
link a5,#L427
movem.l d2/a2-a4,-(a7)
move.b $14(a5),d2
move.l $C(a5),a3
move.l $8(a5),a4
L411
; gl_init_math();
jsr _gl_init_math
; gl_init_lists();
jsr _gl_init_lists
; gl_init_eval();
jsr _gl_init_eval
; ctx = (GLcontext *) calloc( 1, sizeof(GLcontext) );
move.l #$E99E,-(a7)
pea 1.w
jsr _calloc
addq.w #$8,a7
move.l d0,a2
; if (!ctx)
cmp.w #0,a2
bne.b L413
L412
moveq #0,d0
movem.l (a7)+,d2/a2-a4
unlk a5
rts
L413
; ctx->DriverCtx = driver_ctx;
move.l $10(a5),$9EC(a2)
; ctx->Visual = visual;
move.l a4,$8F8(a2)
; ctx->Buffer = NULL;
clr.l $8FC(a2)
; ctx->VB = gl_alloc_vb();
jsr _gl_alloc_vb
move.l a2,a1
add.l #$E994,a1
move.l d0,(a1)
; if (!ctx->VB)
move.l a2,a1
add.l #$E994,a1
tst.l (a1)
bne.b L415
L414
; free( ctx );
move.l a2,-(a7)
jsr _free
addq.w #4,a7
moveq #0,d0
movem.l (a7)+,d2/a2-a4
unlk a5
rts
L415
; ctx->PB = gl_alloc_pb();
jsr _gl_alloc_pb
move.l a2,a1
add.l #$E998,a1
move.l d0,(a1)
; if (!ctx->PB)
move.l a2,a1
add.l #$E998,a1
tst.l (a1)
bne.b L417
L416
; free( ctx->VB );
move.l a2,a1
add.l #$E994,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; free( ctx );
move.l a2,-(a7)
jsr _free
addq.w #4,a7
moveq #0,d0
movem.l (a7)+,d2/a2-a4
unlk a5
rts
L417
; if (share_list)
cmp.w #0,a3
beq.b L419
L418
; ctx->Shared = share_list->Shared;
move.l a3,a1
move.l (a1),(a2)
bra.b L421
L419
; ctx->Shared = alloc_shared_state();
jsr _alloc_shared_state
move.l d0,(a2)
; if (!ctx->Shared)
tst.l (a2)
bne.b L421
L420
; free(ctx->VB);
move.l a2,a1
add.l #$E994,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; free(ctx->PB);
move.l a2,a1
add.l #$E998,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; free(ctx);
move.l a2,-(a7)
jsr _free
addq.w #4,a7
moveq #0,d0
movem.l (a7)+,d2/a2-a4
unlk a5
rts
L421
; ctx->Shared->RefCount++;
move.l (a2),a0
addq.l #1,(a0)
; initialize_context( ctx );
move.l a2,-(a7)
jsr _initialize_context
addq.w #4,a7
; ctx->DirectContext = direct;
move.l a2,a0
add.l #$E95E,a0
move.b d2,(a0)
; if (visual->DBflag)
move.l a4,a0
tst.b 1(a0)
beq.b L423
L422
; ctx->Color.DrawBuffer = GL_BACK;
move.l #$405,$21E2(a2)
; ctx->Pixel.ReadBuffer = GL_BACK;
move.l a2,a0
add.l #$B168,a0
move.l #$405,(a0)
bra.b L424
L423
; ctx->Color.DrawBuffer = GL_FRONT;
move.l #$404,$21E2(a2)
; ctx->Pixel.ReadBuffer = GL_FRONT;
move.l a2,a0
add.l #$B168,a0
move.l #$404,(a0)
L424
; if (!alloc_proxy_textures(ctx))
move.l a2,-(a7)
jsr _alloc_proxy_textures
addq.w #4,a7
tst.b d0
bne.b L426
L425
; free_shared_state(ctx, ctx->Shared);
move.l (a2),-(a7)
move.l a2,-(a7)
jsr _free_shared_state
addq.w #$8,a7
; free(ctx->VB);
move.l a2,a1
add.l #$E994,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; free(ctx->PB);
move.l a2,a1
add.l #$E998,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; free(ctx);
move.l a2,-(a7)
jsr _free
addq.w #4,a7
moveq #0,d0
movem.l (a7)+,d2/a2-a4
unlk a5
rts
L426
; gl_init_api_function_pointers( ctx );
move.l a2,-(a7)
jsr _gl_init_api_function_pointers
addq.w #4,a7
; ctx->API = ctx->Exec;
lea $5FC(a2),a1
lea 4(a2),a0
move.w #$BE,d0
L428
move.l (a1)+,(a0)+
dbra d0,L428
move.l a2,d0
movem.l (a7)+,d2/a2-a4
unlk a5
rts
SECTION "_gl_destroy_context:0",CODE
;void gl_destroy_context( GLcontext *ctx )
XDEF _gl_destroy_context
_gl_destroy_context
move.l a2,-(a7)
move.l $8(a7),a2
L429
; if (ctx)
cmp.w #0,a2
beq L470
L430
; free( ctx->PB );
move.l a2,a1
add.l #$E998,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; free( ctx->VB );
move.l a2,a1
add.l #$E994,a1
move.l (a1),-(a7)
jsr _free
addq.w #4,a7
; ctx->Shared->RefCount--;
move.l (a2),a0
subq.l #1,(a0)
; if (ctx->Shared->RefCount==0)
move.l (a2),a0
tst.l (a0)
bne.b L432
L431
; free_shared_state( ctx, ctx->Shared );
move.l (a2),-(a7)
move.l a2,-(a7)
jsr _free_shared_state
addq.w #$8,a7
L432
; gl_free_texture_object( NULL, ctx->Texture.Proxy1D );
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
; gl_free_texture_object( NULL, ctx->Texture.Proxy2D );
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
; gl_free_texture_object( NULL, ctx->Texture.Proxy3D );
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),-(a7)
clr.l -(a7)
jsr _gl_free_texture_object
addq.w #$8,a7
; if (ctx->EvalMap.Map1Vertex3.Points)
move.l a2,a0
add.l #$E678,a0
tst.l $C(a0)
beq.b L434
L433
; free( ctx->EvalMap.Map1Vertex3.Points );
move.l a2,a0
add.l #$E678,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L434
; if (ctx->EvalMap.Map1Vertex4.Points)
move.l a2,a0
add.l #$E68A,a0
tst.l $C(a0)
beq.b L436
L435
; free( ctx->EvalMap.Map1Vertex4.Points );
move.l a2,a0
add.l #$E68A,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L436
; if (ctx->EvalMap.Map1Index.Points)
move.l a2,a0
add.l #$E69C,a0
tst.l $C(a0)
beq.b L438
L437
; free( ctx->EvalMap.Map1Index.Points );
move.l a2,a0
add.l #$E69C,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L438
; if (ctx->EvalMap.Map1Color4.Points)
move.l a2,a0
add.l #$E6AE,a0
tst.l $C(a0)
beq.b L440
L439
; free( ctx->EvalMap.Map1Color4.Points );
move.l a2,a0
add.l #$E6AE,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L440
; if (ctx->EvalMap.Map1Normal.Points)
move.l a2,a0
add.l #$E6C0,a0
tst.l $C(a0)
beq.b L442
L441
; free( ctx->EvalMap.Map1Normal.Points );
move.l a2,a0
add.l #$E6C0,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L442
; if (ctx->EvalMap.Map1Texture1.Points)
move.l a2,a0
add.l #$E6D2,a0
tst.l $C(a0)
beq.b L444
L443
; free( ctx->EvalMap.Map1Texture1.Points );
move.l a2,a0
add.l #$E6D2,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L444
; if (ctx->EvalMap.Map1Texture2.Points)
move.l a2,a0
add.l #$E6E4,a0
tst.l $C(a0)
beq.b L446
L445
; free( ctx->EvalMap.Map1Texture2.Points );
move.l a2,a0
add.l #$E6E4,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L446
; CC->Buffer = NULL;
move.l a2,a0
add.l #$E6F6,a0
tst.l $C(a0)
beq.b L448
L447
; free( ctx->EvalMap.Map1Texture3.Points );
move.l a2,a0
add.l #$E6F6,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L448
; if (ctx->EvalMap.Map1Texture4.Points)
move.l a2,a0
add.l #$E708,a0
tst.l $C(a0)
beq.b L450
L449
; free( ctx->EvalMap.Map1Texture4.Points );
move.l a2,a0
add.l #$E708,a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
L450
; if (ctx->EvalMap.Map2Vertex3.Points)
move.l a2,a0
add.l #$E71A,a0
tst.l $18(a0)
beq.b L452
L451
; free( ctx->EvalMap.Map2Vertex3.Points );
move.l a2,a0
add.l #$E71A,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L452
; if (ctx->EvalMap.Map2Vertex4.Points)
move.l a2,a0
add.l #$E738,a0
tst.l $18(a0)
beq.b L454
L453
; free( ctx->EvalMap.Map2Vertex4.Points );
move.l a2,a0
add.l #$E738,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L454
; if (ctx->EvalMap.Map2Index.Points)
move.l a2,a0
add.l #$E756,a0
tst.l $18(a0)
beq.b L456
L455
; free( ctx->EvalMap.Map2Index.Points );
move.l a2,a0
add.l #$E756,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L456
; if (ctx->EvalMap.Map2Color4.Points)
move.l a2,a0
add.l #$E774,a0
tst.l $18(a0)
beq.b L458
L457
; free( ctx->EvalMap.Map2Color4.Points );
move.l a2,a0
add.l #$E774,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L458
; if (ctx->EvalMap.Map2Normal.Points)
move.l a2,a0
add.l #$E792,a0
tst.l $18(a0)
beq.b L460
L459
; free( ctx->EvalMap.Map2Normal.Points );
move.l a2,a0
add.l #$E792,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L460
; if (ctx->EvalMap.Map2Texture1.Points)
move.l a2,a0
add.l #$E7B0,a0
tst.l $18(a0)
beq.b L462
L461
; free( ctx->EvalMap.Map2Texture1.Points );
move.l a2,a0
add.l #$E7B0,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L462
; if (ctx->EvalMap.Map2Texture2.Points)
move.l a2,a0
add.l #$E7CE,a0
tst.l $18(a0)
beq.b L464
L463
; free( ctx->EvalMap.Map2Texture2.Points );
move.l a2,a0
add.l #$E7CE,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L464
; if (ctx->EvalMap.Map2Texture3.Points)
move.l a2,a0
add.l #$E7EC,a0
tst.l $18(a0)
beq.b L466
L465
; free( ctx->EvalMap.Map2Texture3.Points );
move.l a2,a0
add.l #$E7EC,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L466
; if (ctx->EvalMap.Map2Texture4.Points)
move.l a2,a0
add.l #$E80A,a0
tst.l $18(a0)
beq.b L468
L467
; free( ctx->EvalMap.Map2Texture4.Points );
move.l a2,a0
add.l #$E80A,a0
move.l $18(a0),-(a7)
jsr _free
addq.w #4,a7
L468
; free( (void *) ctx );
move.l a2,-(a7)
jsr _free
addq.w #4,a7
; if (ctx==CC)
cmp.l _CC(a6),a2
bne.b L470
L469
; CC = NULL;
clr.l _CC(a6)
L470
move.l (a7)+,a2
rts
SECTION "_gl_create_framebuffer:0",CODE
;GLframebuffer *gl_create_framebuffer( GLvisual *visual )
XDEF _gl_create_framebuffer
_gl_create_framebuffer
move.l a2,-(a7)
move.l $8(a7),a2
L471
; buffer = (GLframebuffer *) calloc( 1, sizeof(GLframebuffer) );
pea $34.w
pea 1.w
jsr _calloc
addq.w #$8,a7
move.l d0,a0
; if (!buffer)
cmp.w #0,a0
bne.b L473
L472
moveq #0,d0
move.l (a7)+,a2
rts
L473
; buffer->Visual = visual;
move.l a2,(a0)
move.l a0,d0
move.l (a7)+,a2
rts
SECTION "_gl_destroy_framebuffer:0",CODE
;void gl_destroy_framebuffer( GLframebuffer *buffer )
XDEF _gl_destroy_framebuffer
_gl_destroy_framebuffer
move.l a2,-(a7)
move.l $8(a7),a2
L474
; if (buffer)
cmp.w #0,a2
beq.b L486
L475
; if (buffer->Depth)
tst.l $C(a2)
beq.b L477
L476
; free( buffer->Depth );
move.l $C(a2),-(a7)
jsr _free
addq.w #4,a7
L477
; if (buffer->Accum)
tst.l $14(a2)
beq.b L479
L478
; free( buffer->Accum );
move.l $14(a2),-(a7)
jsr _free
addq.w #4,a7
L479
; if (buffer->Stencil)
tst.l $10(a2)
beq.b L481
L480
; free( buffer->Stencil );
move.l $10(a2),-(a7)
jsr _free
addq.w #4,a7
L481
; if (buffer->FrontAlpha)
tst.l $18(a2)
beq.b L483
L482
; free( buffer->FrontAlpha );
move.l $18(a2),-(a7)
jsr _free
addq.w #4,a7
L483
; if (buffer->BackAlpha)
tst.l $1C(a2)
beq.b L485
L484
; free( buffer->BackAlpha );
move.l $1C(a2),-(a7)
jsr _free
addq.w #4,a7
L485
; free(buffer);
move.l a2,-(a7)
jsr _free
addq.w #4,a7
L486
move.l (a7)+,a2
rts
SECTION "_gl_make_current:0",CODE
;void gl_make_current( GLcontext *ctx, GLframebuffer *buffer )
XDEF _gl_make_current
_gl_make_current
movem.l a2/a3,-(a7)
movem.l $C(a7),a0/a1
L487
; if (CC && CC->Buffer)
tst.l _CC(a6)
beq.b L490
L488
move.l _CC(a6),a2
tst.l $8FC(a2)
beq.b L490
L489
; CC->Buffer = NULL;
move.l _CC(a6),a3
clr.l $8FC(a3)
L490
; CC = ctx;
move.l a0,_CC(a6)
; if (ctx && buffer)
cmp.w #0,a0
beq.b L493
L491
cmp.w #0,a1
beq.b L493
L492
; ctx->Buffer = buffer;
move.l a1,$8FC(a0)
; ctx->NewState = NEW_ALL;
move.l a0,a1
add.l #$E960,a1
move.l #$FF,(a1)
; gl_update_state( ctx );
move.l a0,-(a7)
jsr _gl_update_state
addq.w #4,a7
L493
movem.l (a7)+,a2/a3
rts
SECTION "_gl_get_current_context:0",CODE
;GLcontext *gl_get_current_context( void )
XDEF _gl_get_current_context
_gl_get_current_context
L494
move.l _CC(a6),d0
rts
SECTION "_gl_copy_context:0",CODE
;void gl_copy_context( const GLcontext *src, GLcontext *dst, GLuint m
XDEF _gl_copy_context
_gl_copy_context
movem.l d2/d3/a2/a3,-(a7)
move.l $1C(a7),d2
move.l $18(a7),a2
move.l $14(a7),a3
L495
; if (mask & GL_ACCUM_BUFFER_BIT)
move.l d2,d0
and.l #$200,d0
beq.b L497
L496
;Accum, &src->Accu
pea $10.w
pea $21B4(a3)
pea $21B4(a2)
jsr _q_memcpy
add.w #$C,a7
L497
; if (mask & GL_COLOR_BUFFER_BIT)
move.l d2,d0
and.l #$4000,d0
beq.b L499
L498
; &src->Color, siz
pea $52.w
pea $21C4(a3)
pea $21C4(a2)
jsr _q_memcpy
add.w #$C,a7
L499
; if (mask & GL_CURRENT_BIT)
move.l d2,d0
and.l #1,d0
beq.b L501
L500
;t, &src->Current,
pea $86.w
pea $2216(a3)
pea $2216(a2)
jsr _q_memcpy
add.w #$C,a7
L501
; if (mask & GL_DEPTH_BUFFER_BIT)
move.l d2,d0
and.l #$100,d0
beq.b L503
L502
; &src->Depth, siz
pea $A.w
pea $229C(a3)
pea $229C(a2)
jsr _q_memcpy
add.w #$C,a7
L503
; if (mask & GL_ENABLE_BIT)
L504
; if (mask & GL_EVAL_BIT)
move.l d2,d0
and.l #$10000,d0
beq.b L506
L505
;t->Eval, &src->Ev
pea $38.w
pea $22A6(a3)
pea $22A6(a2)
jsr _q_memcpy
add.w #$C,a7
L506
; if (mask & GL_FOG_BIT)
move.l d2,d0
and.l #$80,d0
beq.b L508
L507
;&dst->Fog, &src->
pea $26.w
pea $22DE(a3)
pea $22DE(a2)
jsr _q_memcpy
add.w #$C,a7
L508
; if (mask & GL_HINT_BIT)
move.l d2,d0
and.l #$8000,d0
beq.b L510
L509
;t->Hint, &src->Hi
pea $14.w
pea $2304(a3)
pea $2304(a2)
jsr _q_memcpy
add.w #$C,a7
L510
; if (mask & GL_LIGHTING_BIT)
move.l d2,d0
and.l #$40,d0
beq.b L512
L511
;Light, &src->Ligh
move.l #$8E40,-(a7)
pea $2318(a3)
pea $2318(a2)
jsr _q_memcpy
add.w #$C,a7
L512
; if (mask & GL_LINE_BIT)
move.l d2,d0
and.l #4,d0
beq.b L514
L513
;t->Line, &src->Li
pea $C.w
move.l a3,a0
add.l #$B158,a0
pea (a0)
move.l a2,a0
add.l #$B158,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L514
; if (mask & GL_LIST_BIT)
move.l d2,d0
and.l #$20000,d0
beq.b L516
L515
;t->List, &src->Li
pea 4.w
move.l a3,a0
add.l #$B164,a0
pea (a0)
move.l a2,a0
add.l #$B164,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L516
; if (mask & GL_PIXEL_MODE_BIT)
move.l d2,d0
and.l #$20,d0
beq.b L518
L517
;Pixel, &src->Pixe
pea $2C68.w
move.l a3,a0
add.l #$B168,a0
pea (a0)
move.l a2,a0
add.l #$B168,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L518
; if (mask & GL_POINT_BIT)
move.l d2,d0
and.l #2,d0
beq.b L520
L519
;Point, &src->Poin
pea $1E.w
move.l a3,a0
add.l #$DDD0,a0
pea (a0)
move.l a2,a0
add.l #$DDD0,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L520
; if (mask & GL_POLYGON_BIT)
move.l d2,d0
and.l #$8,d0
beq.b L522
L521
;n, &src->Polygon,
pea $24.w
move.l a3,a0
add.l #$DDEE,a0
pea (a0)
move.l a2,a0
add.l #$DDEE,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L522
; if (mask & GL_POLYGON_STIPPLE_BIT)
move.l d2,d0
and.l #$10,d0
beq.b L526
L523
; for (i=0;
moveq #0,d0
bra.b L525
L524
; dst->PolygonStipple[i] = src->PolygonStipple[i];
move.l a3,a0
add.l #$DE12,a0
move.l 0(a0,d0.l*4),d1
move.l a2,a0
add.l #$DE12,a0
move.l d1,0(a0,d0.l*4)
addq.l #1,d0
L525
cmp.l #$20,d0
blt.b L524
L526
; if (mask & GL_SCISSOR_BIT)
move.l d2,d0
and.l #$80000,d0
beq.b L528
L527
;r, &src->Scissor,
pea $12.w
move.l a3,a0
add.l #$DE92,a0
pea (a0)
move.l a2,a0
add.l #$DE92,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L528
; if (mask & GL_STENCIL_BUFFER_BIT)
move.l d2,d0
and.l #$400,d0
beq.b L530
L529
;l, &src->Stencil,
pea $16.w
move.l a3,a0
add.l #$DEA4,a0
pea (a0)
move.l a2,a0
add.l #$DEA4,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L530
; if (mask & GL_TEXTURE_BIT)
move.l d2,d0
and.l #$40000,d0
beq.b L532
L531
;e, &src->Texture,
pea $618.w
move.l a3,a0
add.l #$DEBA,a0
pea (a0)
move.l a2,a0
add.l #$DEBA,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L532
; if (mask & GL_TRANSFORM_BIT)
move.l d2,d0
and.l #$1000,d0
beq.b L534
L533
;src->Transform, s
pea $6E.w
move.l a3,a0
add.l #$E4D2,a0
pea (a0)
move.l a2,a0
add.l #$E4D2,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L534
; if (mask & GL_VIEWPORT_BIT)
and.l #$800,d2
beq.b L536
L535
; &src->Viewport,
pea $30.w
move.l a3,a0
add.l #$E540,a0
pea (a0)
move.l a2,a0
add.l #$E540,a0
pea (a0)
jsr _q_memcpy
add.w #$C,a7
L536
movem.l (a7)+,d2/d3/a2/a3
rts
SECTION "_gl_set_api_table:0",CODE
;void gl_set_api_table( GLcontext *ctx, const struct gl_api_table *ap
XDEF _gl_set_api_table
_gl_set_api_table
movem.l 4(a7),a0/a1
L537
; if (api)
cmp.w #0,a1
beq.b L539
L538
;EMCPY( &ctx->API,
pea $2FC.w
move.l a1,-(a7)
pea 4(a0)
jsr _q_memcpy
add.w #$C,a7
bra.b L540
L539
;&ctx->API, &ctx->
pea $2FC.w
pea $5FC(a0)
pea 4(a0)
jsr _q_memcpy
add.w #$C,a7
L540
rts
SECTION "_gl_problem:0",CODE
;void gl_problem( const GLcontext *ctx, const char *s )
XDEF _gl_problem
_gl_problem
move.l $8(a7),a0
L543
; fprintf( stderr, "Mesa implementation error: %s\n", s );
move.l a0,-(a7)
move.l #L541,-(a7)
pea _std__err(a6)
jsr _fprintf
add.w #$C,a7
; fprintf( stderr, "Report to Mesa author.\n" );
move.l #L542,-(a7)
pea _std__err(a6)
jsr _fprintf
addq.w #$8,a7
; (void) ctx;
rts
L541
dc.b 'Mesa implementation error: %s',$A,0
L542
dc.b 'Report to Mesa author.',$A,0
SECTION "_gl_warning:0",CODE
;void gl_warning( const GLcontext *ctx, const char *s )
XDEF _gl_warning
_gl_warning
move.l a2,-(a7)
move.l $C(a7),a2
L546
; if (getenv("MESA_DEBUG"))
move.l #L544,-(a7)
jsr _getenv
addq.w #4,a7
tst.l d0
beq.b L548
L547
; debug = GL_TRUE;
moveq #1,d0
bra.b L549
L548
; debug = GL_FALSE;
moveq #0,d0
L549
; if (debug)
tst.b d0
beq.b L551
L550
; fprintf( stderr, "Mesa warning: %s\n", s );
move.l a2,-(a7)
move.l #L545,-(a7)
pea _std__err(a6)
jsr _fprintf
add.w #$C,a7
L551
; (void) ctx;
move.l (a7)+,a2
rts
L544
dc.b 'MESA_DEBUG',0
L545
dc.b 'Mesa warning: %s',$A,0
SECTION "_gl_error:0",CODE
;void gl_error( GLcontext *ctx, GLenum error, const char *s )
XDEF _gl_error
_gl_error
L581 EQU -$3EA
link a5,#L581
movem.l d2/a2/a3,-(a7)
movem.l $C(a5),d2/a3
move.l $8(a5),a2
L562
; if (getenv("MESA_DEBUG"))
move.l #L552,-(a7)
jsr _getenv
addq.w #4,a7
tst.l d0
beq.b L564
L563
; debug = GL_TRUE;
moveq #1,d0
bra.b L565
L564
; debug = GL_FALSE;
moveq #0,d0
L565
; if (debug)
tst.b d0
beq L576
L566
; switch (error)
move.l d2,d0
cmp.l #$502,d0
beq.b L570
bgt.b L582
cmp.l #$500,d0
beq.b L569
bgt.b L583
cmp.l #0,d0
beq.b L567
bra L574
L583
bgt.b L568
L582
cmp.l #$504,d0
beq L572
bgt.b L584
blt.b L571
L584
cmp.l #$505,d0
beq L573
bra L574
;
L567
; strcpy( errstr, "GL_NO_ERROR" );
move.l #L553,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra L575
L568
; strcpy( errstr, "GL_INVALID_VALUE" );
move.l #L554,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra L575
L569
; strcpy( errstr, "GL_INVALID_ENUM" );
move.l #L555,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra.b L575
L570
; strcpy( errstr, "GL_INVALID_OPERATION" );
move.l #L556,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra.b L575
L571
; strcpy( errstr, "GL_STACK_OVERFLOW" );
move.l #L557,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra.b L575
L572
; strcpy( errstr, "GL_STACK_UNDERFLOW" );
move.l #L558,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra.b L575
L573
; strcpy( errstr, "GL_OUT_OF_MEMORY" );
move.l #L559,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
bra.b L575
L574
; strcpy( errstr, "unknown" );
move.l #L560,-(a7)
pea -$3EA(a5)
jsr _strcpy
addq.w #$8,a7
;
L575
; fprintf( stderr, "Mesa user error: %s in %s\n", errstr,
move.l a3,-(a7)
pea -$3EA(a5)
move.l #L561,-(a7)
pea _std__err(a6)
jsr _fprintf
add.w #$10,a7
L576
; if (ctx->ErrorValue==GL_NO_ERROR)
move.l a2,a0
add.l #$E95A,a0
tst.l (a0)
bne.b L578
L577
; ctx->ErrorValue = error;
move.l a2,a0
add.l #$E95A,a0
move.l d2,(a0)
L578
; if (ctx->Driver.Error)
tst.l $978(a2)
beq.b L580
L579
; (*ctx->Driver.Error)( ctx );
move.l a2,-(a7)
move.l $978(a2),a0
jsr (a0)
addq.w #4,a7
L580
movem.l (a7)+,d2/a2/a3
unlk a5
rts
L555
dc.b 'GL_INVALID_ENUM',0
L556
dc.b 'GL_INVALID_OPERATION',0
L554
dc.b 'GL_INVALID_VALUE',0
L553
dc.b 'GL_NO_ERROR',0
L559
dc.b 'GL_OUT_OF_MEMORY',0
L557
dc.b 'GL_STACK_OVERFLOW',0
L558
dc.b 'GL_STACK_UNDERFLOW',0
L552
dc.b 'MESA_DEBUG',0
L561
dc.b 'Mesa user error: %s in %s',$A,0
L560
dc.b 'unknown',0
SECTION "_gl_GetError:0",CODE
;GLenum gl_GetError( GLcontext *ctx )
XDEF _gl_GetError
_gl_GetError
move.l 4(a7),a0
L586
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L588
L587
; gl_error( ctx, GL_INVALID_OPERATION, "glGetError" );
move.l #L585,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
move.l #$502,d0
rts
L588
; e = ctx->ErrorValue;
move.l a0,a1
add.l #$E95A,a1
move.l (a1),d0
; ctx->ErrorValue = (GLenum) GL_NO_ERROR;
add.l #$E95A,a0
clr.l (a0)
rts
L585
dc.b 'glGetError',0
SECTION "_gl_ResizeBuffersMESA:0",CODE
;void gl_ResizeBuffersMESA( GLcontext *ctx )
XDEF _gl_ResizeBuffersMESA
_gl_ResizeBuffersMESA
L606 EQU -$C
link a5,#L606
movem.l d2/a2,-(a7)
move.l $8(a5),a2
L589
; ctx->NewState |= NEW_ALL;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #$FF,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
; (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height );
pea -$C(a5)
pea -$8(a5)
move.l a2,-(a7)
move.l $920(a2),a0
jsr (a0)
add.w #$C,a7
; newsize = ctx->Buffer->Width != (GLint) buf_width
moveq #1,d2
move.l $8FC(a2),a0
move.l 4(a0),d0
cmp.l -$8(a5),d0
bne.b L592
L590
move.l $8FC(a2),a0
move.l $8(a0),d0
cmp.l -$C(a5),d0
bne.b L592
L591
moveq #0,d2
L592
; ctx->Buffer->Width = buf_width;
move.l $8FC(a2),a0
move.l -$8(a5),4(a0)
; ctx->Buffer->Height = buf_height;
move.l $8FC(a2),a0
move.l -$C(a5),$8(a0)
; if (newsize && ctx->Visual->DepthBits>0)
tst.l d2
beq.b L595
L593
move.l $8F8(a2),a0
move.l $1C(a0),d0
cmp.l #0,d0
ble.b L595
L594
; (*ctx->Driver.AllocDepthBuffer)( ctx );
move.l a2,-(a7)
move.l $984(a2),a0
jsr (a0)
addq.w #4,a7
L595
; if (newsize && ctx->Visual->StencilBits>0)
tst.l d2
beq.b L598
L596
move.l $8F8(a2),a0
move.l $20(a0),d0
cmp.l #0,d0
ble.b L598
L597
; gl_alloc_stencil_buffer( ctx );
move.l a2,-(a7)
jsr _gl_alloc_stencil_buffer
addq.w #4,a7
L598
; if (newsize && ctx->Visual->AccumBits>0)
tst.l d2
beq.b L601
L599
move.l $8F8(a2),a0
move.l $18(a0),d0
cmp.l #0,d0
ble.b L601
L600
; gl_alloc_accum_buffer( ctx );
move.l a2,-(a7)
jsr _gl_alloc_accum_buffer
addq.w #4,a7
L601
; GLboolean red = ctx-
tst.l d2
beq.b L605
L602
move.l $8F8(a2),a0
tst.b $24(a0)
bne.b L604
L603
move.l $8F8(a2),a0
tst.b $25(a0)
beq.b L605
L604
; gl_alloc_alpha_buffers( ctx );
move.l a2,-(a7)
jsr _gl_alloc_alpha_buffers
addq.w #4,a7
L605
movem.l (a7)+,d2/a2
unlk a5
rts
SECTION "_update_pixel_logic:0",CODE
;static void update_pixel_logic( GLcontext *ctx )
_update_pixel_logic
move.l a2,-(a7)
move.l $8(a7),a2
L607
; if (ctx->Visual->RGBAflag)
move.l $8F8(a2),a0
tst.b (a0)
beq.b L618
L608
; if (ctx->Color.ColorLogicOpEnabled)
tst.b $2213(a2)
beq.b L614
L609
; if (ctx->Driver.LogicOp
tst.l $970(a2)
beq.b L612
L610
move.l $220E(a2),-(a7)
move.l a2,-(a7)
move.l $970(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
beq.b L612
L611
; ctx->Color.SWLogicOpEnabled = GL_FALSE;
clr.b $2214(a2)
bra.b L613
L612
; ctx->Color.SWLogicOpEnabled = GL_TRUE;
move.b #1,$2214(a2)
L613
bra.b L617
L614
; if (ctx->Driver.LogicOp)
tst.l $970(a2)
beq.b L616
L615
; (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY )
pea $1503.w
move.l a2,-(a7)
move.l $970(a2),a0
jsr (a0)
addq.w #$8,a7
L616
; ctx->Color.SWLogicOpEnabled = GL_FALSE;
clr.b $2214(a2)
L617
bra.b L627
L618
; if (ctx->Color.IndexLogicOpEnabled)
tst.b $2212(a2)
beq.b L624
L619
; if (ctx->Driver.LogicOp
tst.l $970(a2)
beq.b L622
L620
move.l $220E(a2),-(a7)
move.l a2,-(a7)
move.l $970(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
beq.b L622
L621
; ctx->Color.SWLogicOpEnabled = GL_FALSE;
clr.b $2214(a2)
bra.b L623
L622
; ctx->Color.SWLogicOpEnabled = GL_TRUE;
move.b #1,$2214(a2)
L623
bra.b L627
L624
; if (ctx->Driver.LogicOp)
tst.l $970(a2)
beq.b L626
L625
; (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY )
pea $1503.w
move.l a2,-(a7)
move.l $970(a2),a0
jsr (a0)
addq.w #$8,a7
L626
; ctx->Color.SWLogicOpEnabled = GL_FALSE;
clr.b $2214(a2)
L627
move.l (a7)+,a2
rts
SECTION "_update_pixel_masking:0",CODE
;static void update_pixel_masking( GLcontext *ctx )
_update_pixel_masking
movem.l d2-d4/a2,-(a7)
move.l $14(a7),a2
L628
; if (ctx->Visual->RGBAflag)
move.l $8F8(a2),a0
tst.b (a0)
beq L650
L629
; GLuint *colorMask = (GLuint *) ctx->Color.ColorMask;
; if (*colorMask == 0xffffffff)
move.l $21DC(a2),d0
cmp.l #-1,d0
bne.b L633
L630
; if (ctx->Driver.ColorMask)
tst.l $96C(a2)
beq.b L632
L631
; (void) (*ctx->Driver.ColorMask)( ctx, GL_TRU
move.b #1,-(a7)
move.b #1,-(a7)
move.b #1,-(a7)
move.b #1,-(a7)
move.l a2,-(a7)
move.l $96C(a2),a0
jsr (a0)
add.w #$C,a7
L632
; ctx->Color.SWmasking = GL_FALSE;
clr.b $21E0(a2)
bra.b L649
L633
; GLboolean red = ctx->Color.ColorMask[RCOMP] ? GL
tst.b $21DC(a2)
beq.b L635
L634
moveq #1,d0
bra.b L636
L635
moveq #0,d0
L636
move.b d0,d3
; GLboolean green = ctx->Color.ColorMask[GCOMP] ? GL
lea $21DC(a2),a0
tst.b 1(a0)
beq.b L638
L637
moveq #1,d0
bra.b L639
L638
moveq #0,d0
L639
move.b d0,d2
; GLboolean blue = ctx->Color.ColorMask[BCOMP] ? GL
lea $21DC(a2),a0
tst.b 2(a0)
beq.b L641
L640
moveq #1,d0
bra.b L642
L641
moveq #0,d0
L642
move.b d0,d1
; GLboolean alpha = ctx->Color.ColorMask[ACOMP] ? GL
lea $21DC(a2),a0
tst.b 3(a0)
beq.b L644
L643
moveq #1,d0
bra.b L645
L644
moveq #0,d0
L645
; if (ctx->Driver.ColorMask
tst.l $96C(a2)
beq.b L648
L646
move.b d0,-(a7)
move.b d1,-(a7)
move.b d2,-(a7)
move.b d3,-(a7)
move.l a2,-(a7)
move.l $96C(a2),a0
jsr (a0)
add.w #$C,a7
tst.b d0
beq.b L648
L647
; ctx->Color.SWmasking = GL_FALSE;
clr.b $21E0(a2)
bra.b L649
L648
; ctx->Color.SWmasking = GL_TRUE;
move.b #1,$21E0(a2)
L649
bra.b L658
L650
; if (ctx->Color.IndexMask==0xffffffff)
move.l $21D8(a2),d0
cmp.l #-1,d0
bne.b L654
L651
; if (ctx->Driver.IndexMask)
tst.l $968(a2)
beq.b L653
L652
; (void) (*ctx->Driver.IndexMask)( ctx, 0xffff
move.l #-1,-(a7)
move.l a2,-(a7)
move.l $968(a2),a0
jsr (a0)
addq.w #$8,a7
L653
; ctx->Color.SWmasking = GL_FALSE;
clr.b $21E0(a2)
bra.b L658
L654
; if (ctx->Driver.IndexMask
tst.l $968(a2)
beq.b L657
L655
move.l $21D8(a2),-(a7)
move.l a2,-(a7)
move.l $968(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
beq.b L657
L656
; ctx->Color.SWmasking = GL_FALSE;
clr.b $21E0(a2)
bra.b L658
L657
; ctx->Color.SWmasking = GL_TRUE;
move.b #1,$21E0(a2)
L658
movem.l (a7)+,d2-d4/a2
rts
SECTION "_update_fog_mode:0",CODE
;static void update_fog_mode( GLcontext *ctx )
_update_fog_mode
move.l a2,-(a7)
move.l $8(a7),a2
L659
; if (ctx->Fog.Enabled)
tst.b $22DE(a2)
beq.b L669
L660
; if (ctx->Texture.Enabled)
move.l a2,a0
add.l #$DEBA,a0
tst.l $8(a0)
beq.b L662
L661
; ctx->FogMode = FOG_FRAGMENT;
move.l a2,a0
add.l #$E98A,a0
move.l #2,(a0)
bra.b L665
L662
; else if (ctx->Hint.Fog == GL_NICEST)
move.l $2314(a2),d0
cmp.l #$1102,d0
bne.b L664
L663
; ctx->FogMode = FOG_FRAGMENT;
move.l a2,a0
add.l #$E98A,a0
move.l #2,(a0)
bra.b L665
L664
; ctx->FogMode = FOG_VERTEX;
move.l a2,a0
add.l #$E98A,a0
move.l #1,(a0)
L665
; if (ctx->Driver.GetParameteri)
tst.l $980(a2)
beq.b L668
L666
; if ((ctx->Driver.GetParameteri)( ctx, DD_HAVE_HARD
pea 3.w
move.l a2,-(a7)
move.l $980(a2),a0
jsr (a0)
addq.w #$8,a7
tst.l d0
beq.b L668
L667
; ctx->FogMode = FOG_FRAGMENT;
move.l a2,a0
add.l #$E98A,a0
move.l #2,(a0)
L668
bra.b L670
L669
; ctx->FogMode = FOG_NONE;
move.l a2,a0
add.l #$E98A,a0
clr.l (a0)
L670
move.l (a7)+,a2
rts
SECTION "_update_rasterflags:0",CODE
;static void update_rasterflags( GLcontext *ctx )
_update_rasterflags
move.l 4(a7),a0
L671
; ctx->RasterMask = 0;
move.l a0,a1
add.l #$E974,a1
clr.l (a1)
; if (ctx->Color.AlphaEnabled)
tst.b $21E6(a0)
beq.b L673
L672
; if (ctx->Color.AlphaEnabled) ct
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #1,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L673
; if (ctx->Color.BlendEnabled)
tst.b $21ED(a0)
beq.b L675
L674
; if (ctx->Color.BlendEnabled) ct
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #2,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L675
; if (ctx->Depth.Test)
tst.b $22A4(a0)
beq.b L677
L676
; if (ctx->Depth.Test) ctx->RasterMask
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #4,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L677
; if (ctx->FogMode==FOG_FRAGMENT)
move.l a0,a1
add.l #$E98A,a1
move.l (a1),d0
cmp.l #2,d0
bne.b L679
L678
; if (ctx->FogMode==FOG_FRAGMENT)
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$8,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L679
; if (ctx->Color.SWLogicOpEnabled)
tst.b $2214(a0)
beq.b L681
L680
; if (ctx->Color.SWLogicOpEnabl
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$10,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L681
; if (ctx->Scissor.Enabled)
move.l a0,a1
add.l #$DE92,a1
tst.b (a1)
beq.b L683
L682
; if (ctx->Scissor.Enabled) ctx->Ras
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$20,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L683
; if (ctx->Stencil.Enabled)
move.l a0,a1
add.l #$DEA4,a1
tst.b (a1)
beq.b L685
L684
; if (ctx->Stencil.Enabled) ctx->Ras
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$40,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L685
; if (ctx->Color.SWmasking)
tst.b $21E0(a0)
beq.b L687
L686
; if (ctx->Color.SWmasking) ctx->Ras
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$80,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L687
; if (ctx->Visual->FrontAlphaEnabled)
move.l $8F8(a0),a1
tst.b $24(a1)
beq.b L689
L688
; if (ctx->Visual->FrontAlph
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$100,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L689
; if (ctx->Visual->BackAlphaEnabled)
move.l $8F8(a0),a1
tst.b $25(a1)
beq.b L691
L690
; if (ctx->Visual->BackAlphaE
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$100,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L691
; if (ctx->Driver.Dither) {
move.l a0,a1
add.l #$E540,a1
tst.l (a1)
bmi.b L695
L692
move.l a0,a1
add.l #$E540,a1
move.l (a1),d0
move.l a0,a1
add.l #$E540,a1
add.l $8(a1),d0
move.l $8FC(a0),a1
cmp.l 4(a1),d0
bgt.b L695
L693
move.l a0,a1
add.l #$E540,a1
tst.l 4(a1)
bmi.b L695
L694
move.l a0,a1
add.l #$E540,a1
move.l 4(a1),d0
move.l a0,a1
add.l #$E540,a1
add.l $C(a1),d0
move.l $8FC(a0),a1
cmp.l $8(a1),d0
ble.b L696
L695
; ctx->RasterMask |= WINCLIP_BIT;
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$200,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L696
; if (ctx->Color.DrawBuffer==GL_FRONT_AND_BACK)
move.l $21E2(a0),d0
cmp.l #$408,d0
bne.b L698
L697
; ctx->RasterMask |= FRONT_AND_BACK_BIT;
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$400,d0
move.l a0,a1
add.l #$E974,a1
move.l d0,(a1)
L698
; if (ctx->Color.DrawBuffer==GL_NONE)
tst.l $21E2(a0)
bne.b L700
L699
; ctx->RasterMask |= NO_DRAW_BIT;
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$800,d0
add.l #$E974,a0
move.l d0,(a0)
bra.b L706
L700
; else if (ctx->Visual->RGBAflag && ctx->Color.ColorMask==0)
move.l $8F8(a0),a1
tst.b (a1)
beq.b L703
L701
lea $21DC(a0),a1
cmp.w #0,a1
bne.b L703
L702
; ctx->RasterMask |= NO_DRAW_BIT;
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$800,d0
add.l #$E974,a0
move.l d0,(a0)
bra.b L706
L703
; else if (!ctx->Visual->RGBAflag && ctx->Color.IndexMask==
move.l $8F8(a0),a1
tst.b (a1)
bne.b L706
L704
tst.l $21D8(a0)
bne.b L706
L705
; ctx->RasterMask |= NO_DRAW_BIT;
move.l a0,a1
add.l #$E974,a1
move.l (a1),d0
or.l #$800,d0
add.l #$E974,a0
move.l d0,(a0)
L706
rts
SECTION "_update_clipmask:0",CODE
;static void update_clipmask(GLcontext *ctx)
_update_clipmask
move.l 4(a7),a0
L707
; ctx->ClipMask = 0;
move.l a0,a1
add.l #$E970,a1
clr.l (a1)
; if (ctx->Texture.Enabled)
move.l a0,a1
add.l #$DEBA,a1
tst.l $8(a1)
beq.b L709
L708
; ctx->ClipMask |= CLIP_TEXTURE_BIT;
move.l a0,a1
add.l #$E970,a1
move.l (a1),d0
or.l #$10,d0
move.l a0,a1
add.l #$E970,a1
move.l d0,(a1)
L709
; if (ctx->Light.ShadeModel==GL_SMOOTH)
lea $2318(a0),a1
add.l #$8E08,a1
move.l (a1),d0
cmp.l #$1D01,d0
bne L716
L710
; if (ctx->Visual->RGBAflag)
move.l $8F8(a0),a1
tst.b (a1)
beq.b L714
L711
; ctx->ClipMask |= CLIP_FCOLOR_BIT;
move.l a0,a1
add.l #$E970,a1
move.l (a1),d0
or.l #1,d0
move.l a0,a1
add.l #$E970,a1
move.l d0,(a1)
; if (ctx->Light.Model.TwoSide)
move.l a0,a1
add.l #$AA28,a1
tst.b $11(a1)
beq.b L713
L712
; ctx->ClipMask |= CLIP_BCOLOR_BIT;
move.l a0,a1
add.l #$E970,a1
move.l (a1),d0
or.l #2,d0
move.l a0,a1
add.l #$E970,a1
move.l d0,(a1)
L713
bra.b L716
L714
; ctx->ClipMask |= CLIP_FINDEX_BIT;
move.l a0,a1
add.l #$E970,a1
move.l (a1),d0
or.l #4,d0
move.l a0,a1
add.l #$E970,a1
move.l d0,(a1)
; if (ctx->Light.Model.TwoSide)
move.l a0,a1
add.l #$AA28,a1
tst.b $11(a1)
beq.b L716
L715
; ctx->ClipMask |= CLIP_BINDEX_BIT;
move.l a0,a1
add.l #$E970,a1
move.l (a1),d0
or.l #$8,d0
move.l a0,a1
add.l #$E970,a1
move.l d0,(a1)
L716
; if (ctx->Texture.Enabled >= TEXTURE1_1D)
move.l a0,a1
add.l #$DEBA,a1
move.l $8(a1),d0
cmp.l #$10,d0
blo.b L718
L717
; ctx->ClipInterpFunc = gl_clip_interp_all;
move.l a0,a1
add.l #$E990,a1
move.l #_gl_clip_interp_all,(a1)
bra.b L723
L718
; switch(ctx->ClipMask)
move.l a0,a1
add.l #$E970,a1
move.l (a1),d0
cmp.l #$10,d0
beq.b L720
bhi.b L724
cmp.l #1,d0
beq.b L721
bra.b L722
L724
cmp.l #$11,d0
beq.b L719
bra.b L722
;
L719
; ctx->ClipInterpFunc = gl_clip_interp_color_t
move.l a0,a1
add.l #$E990,a1
move.l #_gl_clip_interp_color_tex,(a1)
;
bra.b L723
L720
; ctx->ClipInterpFunc = gl_clip_interp_tex;
move.l a0,a1
add.l #$E990,a1
move.l #_gl_clip_interp_tex,(a1)
;
bra.b L723
L721
; ctx->ClipInterpFunc = gl_clip_interp_color;
move.l a0,a1
add.l #$E990,a1
move.l #_gl_clip_interp_color,(a1)
;
bra.b L723
L722
; ctx->ClipInterpFunc = gl_clip_interp_all;
move.l a0,a1
add.l #$E990,a1
move.l #_gl_clip_interp_all,(a1)
L723
rts
SECTION "_gl_update_state:0",CODE
;void gl_update_state( GLcontext *ctx )
XDEF _gl_update_state
_gl_update_state
movem.l d2/d3/a2,-(a7)
move.l $10(a7),a2
L725
; if (ctx->NewState & NEW_RASTER_OPS)
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #2,d0
beq.b L728
L726
; update_pixel_logic(ctx);
move.l a2,-(a7)
jsr _update_pixel_logic
addq.w #4,a7
; update_pixel_masking(ctx);
move.l a2,-(a7)
jsr _update_pixel_masking
addq.w #4,a7
; update_fog_mode(ctx);
move.l a2,-(a7)
jsr _update_fog_mode
addq.w #4,a7
; update_rasterflags(ctx);
move.l a2,-(a7)
jsr _update_rasterflags
addq.w #4,a7
; if (ctx->Driver.Dither)
tst.l $974(a2)
beq.b L728
L727
; (*ctx->Driver.Dither)( ctx, ctx->Color.DitherFlag )
move.b $2215(a2),-(a7)
move.l a2,-(a7)
move.l $974(a2),a0
jsr (a0)
addq.w #6,a7
L728
; if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING))
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #3,d0
beq.b L730
L729
; update_clipmask(ctx);
move.l a2,-(a7)
jsr _update_clipmask
addq.w #4,a7
L730
; if (ctx->NewState & NEW_LIGHTING)
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #1,d0
beq.b L732
L731
; gl_update_lighting(ctx);
move.l a2,-(a7)
jsr _gl_update_lighting
addq.w #4,a7
; gl_set_color_function(ctx);
move.l a2,-(a7)
jsr _gl_set_color_function
addq.w #4,a7
L732
; if (ctx->NewState & NEW_TEXTURING)
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #4,d0
beq.b L734
L733
; gl_update_texture_state(ctx);
move.l a2,-(a7)
jsr _gl_update_texture_state
addq.w #4,a7
L734
; if (ctx->NewState & (NEW_LIGHTING | NEW_TEXTURING))
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #5,d0
beq L748
L735
; GLboolean sphereGen = GL_FALSE;
moveq #0,d2
; if (ctx->Texture.Enabled)
move.l a2,a0
add.l #$DEBA,a0
tst.l $8(a0)
beq L744
L736
; for (texSet=0;
moveq #0,d0
bra L743
L737
; if ((ctx->Texture.Set[texSet].GenModeS==GL_S
move.l a2,a0
add.l #$DEC6,a0
move.l d0,d1
muls.l #$BC,d1
move.l $18(a0,d1.l),d1
cmp.l #$2402,d1
bne.b L739
L738
move.l a2,a0
add.l #$DEC6,a0
move.l d0,d1
muls.l #$BC,d1
move.l $14(a0,d1.l),d1
and.l #1,d1
bne.b L741
L739
move.l a2,a0
add.l #$DEC6,a0
move.l d0,d1
muls.l #$BC,d1
move.l $1C(a0,d1.l),d1
cmp.l #$2402,d1
bne.b L742
L740
move.l a2,a0
add.l #$DEC6,a0
move.l d0,d1
muls.l #$BC,d1
move.l $14(a0,d1.l),d1
and.l #2,d1
beq.b L742
L741
; sphereGen = GL_TRUE;
moveq #1,d2
L742
addq.l #1,d0
L743
cmp.l #2,d0
blo L737
L744
; if (ctx->Light.Enabled || sphereGen)
lea $2318(a2),a0
add.l #$8E06,a0
tst.b (a0)
bne.b L746
L745
tst.b d2
beq.b L747
L746
; ctx->NeedNormals = GL_TRUE;
move.l a2,a0
add.l #$E986,a0
move.b #1,(a0)
bra.b L748
L747
; ctx->NeedNormals = GL_FALSE;
move.l a2,a0
add.l #$E986,a0
clr.b (a0)
L748
; if (ctx->NewState & NEW_RASTER_OPS)
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #2,d0
beq.b L756
L749
; if (ctx->Fog.Enabled ||
tst.b $22DE(a2)
bne.b L754
L750
move.l a2,a0
add.l #$DEBA,a0
tst.l $8(a0)
bne.b L754
L751
tst.b $21ED(a2)
bne.b L754
L752
tst.b $21E0(a2)
bne.b L754
L753
tst.b $2214(a2)
beq.b L755
L754
; ctx->MutablePixels = GL_TRUE;
move.l a2,a0
add.l #$E987,a0
move.b #1,(a0)
bra.b L756
L755
; ctx->MutablePixels = GL_FALSE;
move.l a2,a0
add.l #$E987,a0
clr.b (a0)
L756
; if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING))
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #3,d0
beq.b L766
L757
; if (ctx->Light.ShadeModel==GL_SMOOTH ||
lea $2318(a2),a0
add.l #$8E08,a0
move.l (a0),d0
cmp.l #$1D01,d0
beq.b L764
L758
lea $2318(a2),a0
add.l #$8E06,a0
tst.b (a0)
bne.b L764
L759
tst.b $22DE(a2)
bne.b L764
L760
move.l a2,a0
add.l #$DEBA,a0
tst.l $8(a0)
bne.b L764
L761
tst.b $21ED(a2)
bne.b L764
L762
tst.b $21E0(a2)
bne.b L764
L763
tst.b $2214(a2)
beq.b L765
L764
; ctx->MonoPixels = GL_FALSE;
move.l a2,a0
add.l #$E988,a0
clr.b (a0)
bra.b L766
L765
; ctx->MonoPixels = GL_TRUE;
move.l a2,a0
add.l #$E988,a0
move.b #1,(a0)
L766
; if (ctx->NewState & NEW_POLYGON)
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #$8,d0
beq L779
L767
; ctx->Polygon.CullBits = 0;
move.l a2,a0
add.l #$DE00,a0
clr.l (a0)
; if (ctx->Polygon.CullFlag)
move.l a2,a0
add.l #$DDEE,a0
tst.b $D(a0)
beq L774
L768
; if (ctx->Polygon.CullFaceMode==GL_FRONT ||
move.l a2,a0
add.l #$DDEE,a0
move.l $E(a0),d0
cmp.l #$404,d0
beq.b L770
L769
move.l a2,a0
add.l #$DDEE,a0
move.l $E(a0),d0
cmp.l #$408,d0
bne.b L771
L770
; ctx->Polygon.CullBits |= 1;
move.l a2,a0
add.l #$DE00,a0
move.l (a0),d0
or.l #1,d0
move.l a2,a0
add.l #$DE00,a0
move.l d0,(a0)
L771
; if (ctx->Polygon.CullFaceMode==GL_BACK ||
move.l a2,a0
add.l #$DDEE,a0
move.l $E(a0),d0
cmp.l #$405,d0
beq.b L773
L772
move.l a2,a0
add.l #$DDEE,a0
move.l $E(a0),d0
cmp.l #$408,d0
bne.b L774
L773
; ctx->Polygon.CullBits |= 2;
move.l a2,a0
add.l #$DE00,a0
move.l (a0),d0
or.l #2,d0
move.l a2,a0
add.l #$DE00,a0
move.l d0,(a0)
L774
; ctx->Polygon.OffsetAny = ctx->Polygon.OffsetPoint ||
moveq #1,d0
move.l a2,a0
add.l #$DDEE,a0
tst.b $20(a0)
bne.b L778
L775
move.l a2,a0
add.l #$DDEE,a0
tst.b $21(a0)
bne.b L778
L776
move.l a2,a0
add.l #$DDEE,a0
tst.b $22(a0)
bne.b L778
L777
moveq #0,d0
L778
move.l a2,a0
add.l #$DE11,a0
move.b d0,(a0)
; ctx->PointZoffset = 0.0;
move.l a2,a0
add.l #$E982,a0
clr.l (a0)
; ctx->LineZoffset = 0.0;
move.l a2,a0
add.l #$E97E,a0
clr.l (a0)
; ctx->PolygonZoffset = 0.0;
move.l a2,a0
add.l #$E97A,a0
clr.l (a0)
L779
; if (ctx->NewState & (NEW_POLYGON | NEW_LIGHTING))
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #$9,d0
beq.b L787
L780
; if ( ctx->Polygon.Unfilled
move.l a2,a0
add.l #$DDEE,a0
tst.b $C(a0)
bne.b L785
L781
move.l a2,a0
add.l #$DDEE,a0
tst.b $23(a0)
bne.b L785
L782
move.l a2,a0
add.l #$DDEE,a0
tst.b $D(a0)
bne.b L785
L783
move.l a2,a0
add.l #$AA28,a0
tst.b $11(a0)
bne.b L785
L784
move.l a2,a0
add.l #$E964,a0
move.l (a0),d0
cmp.l #$1C00,d0
beq.b L786
L785
; ctx->DirectTriangles = GL_FALSE;
move.l a2,a0
add.l #$E979,a0
clr.b (a0)
bra.b L787
L786
; ctx->DirectTriangles = GL_TRUE;
move.l a2,a0
add.l #$E979,a0
move.b #1,(a0)
L787
; ctx->Buffer->Xmin = 0;
move.l $8FC(a2),a0
clr.l $24(a0)
; ctx->Buffer->Ymin = 0;
move.l $8FC(a2),a0
clr.l $2C(a0)
; ctx->Buffer->Xmax = ctx->Buffer->Width-1;
move.l $8FC(a2),a0
move.l 4(a0),d0
subq.l #1,d0
move.l $8FC(a2),a0
move.l d0,$28(a0)
; ctx->Buffer->Ymax = ctx->Buffer->Height-1;
move.l $8FC(a2),a0
move.l $8(a0),d0
subq.l #1,d0
move.l $8FC(a2),a0
move.l d0,$30(a0)
; if (ctx->Scissor.Enabled)
move.l a2,a0
add.l #$DE92,a0
tst.b (a0)
beq L796
L788
; if (ctx->Scissor.X > ctx->Buffer->Xmin)
move.l a2,a0
add.l #$DE92,a0
move.l 2(a0),d1
move.l $8FC(a2),a0
cmp.l $24(a0),d1
ble.b L790
L789
; ctx->Buffer->Xmin = ctx->Scissor.X;
move.l a2,a0
add.l #$DE92,a0
move.l 2(a0),d0
move.l $8FC(a2),a0
move.l d0,$24(a0)
L790
; if (ctx->Scissor.Y > ctx->Buffer->Ymin)
move.l a2,a0
add.l #$DE92,a0
move.l 6(a0),d1
move.l $8FC(a2),a0
cmp.l $2C(a0),d1
ble.b L792
L791
; ctx->Buffer->Ymin = ctx->Scissor.Y;
move.l a2,a0
add.l #$DE92,a0
move.l 6(a0),d0
move.l $8FC(a2),a0
move.l d0,$2C(a0)
L792
; if (ctx->Scissor.X + ctx->Scissor.Width - 1 < ctx->Buffe
move.l a2,a0
add.l #$DE92,a0
move.l 2(a0),d0
move.l a2,a0
add.l #$DE92,a0
add.l $A(a0),d0
subq.l #1,d0
move.l $8FC(a2),a0
cmp.l $28(a0),d0
bge.b L794
L793
; ctx->Buffer->Xmax = ctx->Scissor.X + ctx->Scissor.
move.l a2,a0
add.l #$DE92,a0
move.l 2(a0),d0
move.l a2,a0
add.l #$DE92,a0
add.l $A(a0),d0
subq.l #1,d0
move.l $8FC(a2),a0
move.l d0,$28(a0)
L794
; if (ctx->Scissor.Y + ctx->Scissor.Height - 1 < ctx->Buff
move.l a2,a0
add.l #$DE92,a0
move.l 6(a0),d0
move.l a2,a0
add.l #$DE92,a0
add.l $E(a0),d0
subq.l #1,d0
move.l $8FC(a2),a0
cmp.l $30(a0),d0
bge.b L796
L795
; ctx->Buffer->Ymax = ctx->Scissor.Y + ctx->Scissor.
move.l a2,a0
add.l #$DE92,a0
move.l 6(a0),d0
move.l a2,a0
add.l #$DE92,a0
add.l $E(a0),d0
subq.l #1,d0
move.l $8FC(a2),a0
move.l d0,$30(a0)
L796
; if (ctx->NewState & NEW_RASTER_OPS)
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
and.l #2,d0
beq L805
L797
; ctx->Driver.AllocDepthBuffer = gl_alloc_depth_buffer;
move.l #_gl_alloc_depth_buffer,$984(a2)
; if (ctx->Depth.Mask)
tst.b $22A5(a2)
beq.b L803
L798
; switch (ctx->Depth.Func)
move.l $229C(a2),d0
cmp.l #$201,d0
beq.b L799
cmp.l #$204,d0
beq.b L800
bra.b L801
;
L799
; ctx->Driver.DepthTestSpan = gl_depth_t
move.l #_gl_depth_test_span_less,$988(a2)
; ctx->Driver.DepthTestPixels = gl_depth
move.l #_gl_depth_test_pixels_less,$98C(a2)
;
bra.b L802
L800
; ctx->Driver.DepthTestSpan = gl_depth_t
move.l #_gl_depth_test_span_greater,$988(a2)
; ctx->Driver.DepthTestPixels = gl_depth
move.l #_gl_depth_test_pixels_greater,$98C(a2)
;
bra.b L802
L801
; ctx->Driver.DepthTestSpan = gl_depth_t
move.l #_gl_depth_test_span_generic,$988(a2)
; ctx->Driver.DepthTestPixels = gl_depth
move.l #_gl_depth_test_pixels_generic,$98C(a2)
L802
bra.b L804
L803
; ctx->Driver.DepthTestSpan = gl_depth_test_span_gen
move.l #_gl_depth_test_span_generic,$988(a2)
; ctx->Driver.DepthTestPixels = gl_depth_test_pixels
move.l #_gl_depth_test_pixels_generic,$98C(a2)
L804
; ctx->Driver.ReadDepthSpanFloat = gl_read_depth_span_floa
move.l #_gl_read_depth_span_float,$990(a2)
; ctx->Driver.ReadDepthSpanInt = gl_read_depth_span_int;
move.l #_gl_read_depth_span_int,$994(a2)
L805
; ctx->Driver.PointsFunc = NULL;
clr.l $998(a2)
; ctx->Driver.LineFunc = NULL;
clr.l $99C(a2)
; ctx->Driver.TriangleFunc = NULL;
clr.l $9A0(a2)
; ctx->Driver.QuadFunc = NULL;
clr.l $9A4(a2)
; ctx->Driver.RectFunc = NULL;
clr.l $9A8(a2)
; (*ctx->Driver.UpdateState)(ctx);
move.l a2,-(a7)
move.l $904(a2),a0
jsr (a0)
addq.w #4,a7
; gl_set_point_function(ctx);
move.l a2,-(a7)
jsr _gl_set_point_function
addq.w #4,a7
; gl_set_line_function(ctx);
move.l a2,-(a7)
jsr _gl_set_line_function
addq.w #4,a7
; gl_set_triangle_function(ctx);
move.l a2,-(a7)
jsr _gl_set_triangle_function
addq.w #4,a7
; gl_set_quad_function(ctx);
move.l a2,-(a7)
jsr _gl_set_quad_function
addq.w #4,a7
; gl_set_vertex_function(ctx);
move.l a2,-(a7)
jsr _gl_set_vertex_function
addq.w #4,a7
; ctx->NewState = 0;
move.l a2,a0
add.l #$E960,a0
clr.l (a0)
movem.l (a7)+,d2/d3/a2
rts
END